我想使用正则表达式在所有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
如何移动所有文件并删除此行? 谢谢。
答案 0 :(得分:0)
您可以合并find
和sed
来实现此目标。
查找文件夹中的所有*.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 {} \;