我尝试使用此命令在我的android项目中查找并替换字符串。
find . -name '*.java' -print0 | xargs -0 sed -i "" "s;//\#Logger\.;Logger\.;g"
//#记录器。 =>记录器。
它的工作但在某些文件中我有意想不到的变化。使用git diff我得到:
-}
\ No newline at end of file
+}
如何解决?
答案 0 :(得分:1)
好吧,刚刚想出了问题所在。 您的代码应该如下工作(删除冗余""在sed中使用-i后):
find . -name '*.java' -print0|xargs -0 sed -i "s;//\#Logger\.;Logger\.;g"
或者你可以使用parallel而不是xargs并更快地运行它:
find . -name '*.java' -print0|parallel -0 sed -i "s;//\#Logger\.;Logger\.;g" {}
并在下面建议找到.. -exec variant:
find . -name '*.java' -exec sed -i "s;//\#Logger\.;Logger\.;g" {} +;