用于从.java文件中查找和删除文本模式的Shell脚本

时间:2012-03-09 10:34:19

标签: shell

任何人都可以帮我一个可以执行以下操作的shell脚本吗?

我想从java文件中删除catch块。我需要一个可以搜索catch块并删除它的shell脚本。

我有数百个具有以下catch块的java文件,它们需要被shell脚本删除:

} catch (SomeException e) {
if (Loging.isOn()) {
    System.out.println("Exception");
    // and also some code which differs from file to file.
}

1 个答案:

答案 0 :(得分:1)

我在Windows上没有Linux机器。我假设你在Linux系统上。你需要的是这个sed命令,可以在Linux上的BASH中找到。我无法验证此代码,但它应该按照编写的方式工作,可能需要进行调整。这假定您要删除的块以“} catch”开头,以“}”结尾,该块内没有其他右花括号。当然,运行此代码时需要在正确的目录中,因此请使用CD命令到达目的地。如果排除“in ...”,则循环将像“in $ @”一样运行。

for i in /directory/*.java
do
   # echo 'Working on $i file'
   copy $i tempfil.txt
   sed   -e '/\} catch/,/^\}/d' tempfil.txt > $i
done