任何人都可以看到为什么perl与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
最后一个命令不返回任何问题,也没有任何问题。
您需要-p
,而不是-n
。-n
标志仅读取但不打印。
find . -type f -name *.tex -print0 | xargs -0 perl -i -pe 's/stning/sætning/g'
您可以轻松地使用Mnemonic Perl Pie ,即perl -p -i -e
或较短的perl -pi -e
。
您可以通过SED本身实现您的结果。因为您需要内联替换。
find . -type f -name *.tex -print0 | xargs -0 sed -i 's/stning/sætning/g'