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

Bash 将文本附加到每个文件的Shell脚本?,bash,concatenation,Bash,Concatenation,我有一个装满文本文件的文件夹。我需要将相同的文本块附加到每个文件中(当然还要覆盖原始文件) 我想知道对于这个,正确的bashshell语法是什么。我会用猫吗 我已经完成了一些批处理脚本,但我不是Bash专家。感谢您的建议。使用附加重定向 for f in *.txt do cat footer >> "$f" done 如果需要通过脚本执行此操作,可以使用echo和append重定向将额外的文本放入文件中 FILES=pathto/* 对于f,在$FILES中;做 回声“#额外

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

我想知道对于这个,正确的bashshell语法是什么。我会用猫吗


我已经完成了一些批处理脚本,但我不是Bash专家。感谢您的建议。

使用附加重定向

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

如果需要通过脚本执行此操作,可以使用echo和append重定向将额外的文本放入文件中

FILES=pathto/*
对于f,在$FILES中;做
回声“#额外文本”>>$f
完成

sed-i.bak“$a$(库鲁米答案的变体:

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

有关更多详细信息,请参见非常简单的一个对我很有效的方法

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

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

OP状态为“并覆盖原始文件”",因此我怀疑需要“>”而不是“>”@wiliam,不,这个答案会将页脚文本附加到每个文件中。您不想删除每个文件的实际数据。其中,
footer
是一个包含必须附加到每个文件的文本块的文件。是的,Ignacio说了什么。我想将新的文本文件片段附加到每个原始文件中l文件,然后在附加后保存。谢谢。覆盖或附加,两者都是独占的?在bash中,您有>>管道操作符,您应该使用它
#!/bin/sh
FILES="./files/*"

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