用于将文本附加到每个文件的Shell脚本?

时间:2011-04-07 19:10:19

标签: bash concatenation

我有一个充满文本文件的文件夹。我需要为每个文本附加相同的文本块(当然还要覆盖原始文件)。

我想知道正确的Bash shell语法是什么。我会用猫吗?

我做了一些批处理脚本,但我不是Bash专家。任何建议表示赞赏。

5 个答案:

答案 0 :(得分:34)

使用追加重定向。

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

答案 1 :(得分:7)

如果您需要通过脚本执行此操作,可以使用echo并附加重定向以将额外的文本添加到文件中。

FILES=pathto/*
for f in $FILES ; do
    echo "#extra text" >> $f
done

答案 2 :(得分:1)

sed -i.bak "$ a $(<file_block_of_text)" *.txt

答案 3 :(得分:0)

kurumi答案的变体:

sed -i.bak "\$aTEXTTOINSERT" *.txt

有关详细信息,请参阅SED: insert something to the last line?

答案 4 :(得分:-1)

非常适合我的一个

#!/bin/sh
FILES="./files/*"

for f in $FILES
do
    echo '0000000' | cat - $f > temp && mv temp $f
done