2011-04-07 166 views
26

我有一個文件夾完整的文本文件。我需要將相同的文本塊添加到它們中的每一個(並且當然覆蓋原始文件)。Shell腳本將文本追加到每個文件?

我想知道什麼是正確的Bash shell語法是這樣的。我會用貓嗎?

我已經完成了一些批處理腳本,但我不是Bash專家。任何建議感激。

+5

覆蓋或追加,都是排他性? – flolo 2011-04-08 06:41:58

回答

32

使用附加重定向。

for f in *.txt 
do 
    cat footer >> "$f" 
done 
+0

OP聲明「當然覆蓋原始文件」,所以我懷疑'>'是希望的而不是'>>' – 2011-04-08 00:14:07

+2

@wiliam,不,這個答案附加頁腳文本到每個文件。您不想清除每個文件的實際數據。 – 2011-04-08 10:44:10

+1

其中'footer'是包含必須附加到每個文件的文本塊的文件。 – 2011-04-08 15:47:45

6

如果你需要通過一個腳本來做到這一點,你可以使用echo和追加重定向來獲得額外的文本文件。

FILES=pathto/* 
for f in $FILES ; do 
    echo "#extra text" >> $f 
done 
1
sed -i.bak "$ a $(<file_block_of_text)" *.txt 
相關問題