我有一個文件夾完整的文本文件。我需要將相同的文本塊添加到它們中的每一個(並且當然覆蓋原始文件)。Shell腳本將文本追加到每個文件?
我想知道什麼是正確的Bash shell語法是這樣的。我會用貓嗎?
我已經完成了一些批處理腳本,但我不是Bash專家。任何建議感激。
我有一個文件夾完整的文本文件。我需要將相同的文本塊添加到它們中的每一個(並且當然覆蓋原始文件)。Shell腳本將文本追加到每個文件?
我想知道什麼是正確的Bash shell語法是這樣的。我會用貓嗎?
我已經完成了一些批處理腳本,但我不是Bash專家。任何建議感激。
使用附加重定向。
for f in *.txt
do
cat footer >> "$f"
done
OP聲明「當然覆蓋原始文件」,所以我懷疑'>'是希望的而不是'>>' – 2011-04-08 00:14:07
@wiliam,不,這個答案附加頁腳文本到每個文件。您不想清除每個文件的實際數據。 – 2011-04-08 10:44:10
其中'footer'是包含必須附加到每個文件的文本塊的文件。 – 2011-04-08 15:47:45
如果你需要通過一個腳本來做到這一點,你可以使用echo和追加重定向來獲得額外的文本文件。
FILES=pathto/*
for f in $FILES ; do
echo "#extra text" >> $f
done
sed -i.bak "$ a $(<file_block_of_text)" *.txt
覆蓋或追加,都是排他性? – flolo 2011-04-08 06:41:58