标签: linux bash perl
有人可以看到Perl在与find一起使用时删除所有文件内容的原因吗?
find
echo stning >> test.tex echo stning >> test.tex find . -type f -name \*.tex -print0 | xargs -0 perl -i -ne 's/stning/sætning/g' cat test.tex
最后一个命令不会返回任何内容,而且是问题。
答案 0 :(得分:10)
您需要-p,而不是-n。 -n标志仅读取,但不打印。
-p
-n
find . -type f -name \*.tex -print0 | xargs -0 perl -i -pe 's/stning/sætning/g'
您可以使用助记符 perl pie 轻松记住这一点,perl -p -i -e或更短perl -pi -e。
perl -p -i -e
perl -pi -e
答案 1 :(得分:-1)
你可以用sed本身来达到你的结果。只需要一个内联替换。
find . -type f -name \*.tex -print0 | xargs -0 sed -i 's/stning/sætning/g'