任何人都可以帮我一个可以执行以下操作的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.
}
答案 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