删除正则表达式java filex

时间:2015-03-29 14:25:45

标签: java regex batch-file

我想使用正则表达式在所有java文件上使用sed删除我的java项目中的命令。

我尝试删除的行以Logger.log开头,以Logger.DEBUG结尾。它看起来像这样:

Logger.log("this is an test", Logger.DEBUG);

有时候这个日志可能非常(3或4行,所以我需要考虑一下这个问题)。

我现在的正则表达式是:

/Logger.log(.*)[\n(*)](.*)Logger.DEBUG(.*);/g

我的所有java文件都在1个包中提供。

我没有运气就尝试了SED命令:

sed -r -i '/Logger.log(.*)[\n(*)](.*)Logger.DEBUG(.*);/g' *.java

如何移动所有文件并删除此行? 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以合并findsed来实现此目标。

查找文件夹中的所有*.java个文件(如果希望递归,请删除-maxdepth 1):

find . -maxdepth 1 -name "*.java"

删除行:

sed -ri /^Logger\.log.*?Logger\.DEBUG\.*?\;/d

<强>结合

find . -maxdepth 1 -name "*.java" -exec sed -ri /^Logger\.log.*?Logger\.DEBUG\.*?\;/d {} \;