簡體   English   中英

為什么將Perl與find一起使用時會刪除文件內容?

[英]Why does Perl delete file content when used with find?

任何人都可以看到為什么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' 

您可以使用助記符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' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM