Sed
將行附加到許多文件
我想在超過 200,000 個文件中添加一些文本我正在嘗試這個
find . -name *.txt -print | xargs -I % echo "hello world" >> %
但什麼都沒有發生。當我執行
find . -name *.txt
它時,它會自行工作echo "hello world" >> myfile.txt
外殼在看到它之前正在擴展該
>> %
部分。xargs
如果你需要做 shell 重定向,你必須嘗試這樣的事情:
find . -name "*.txt" -exec sh -c ' echo "hello world" >> "$0" ' {} \;
這個怎麼運作:
find
替換{}
為它匹配的每個文件bash -c "some command" arg0...``$0...
在"some command"
腳本內設置或者,您可以使用
sed
不依賴於>>
例如的命令find . -name "*.txt" -exec sed -i -e '$a\ hello world' {} \;
參考: