【发布时间】:2011-07-31 23:21:42
【问题描述】:
我有一个充满文本文件的文件夹。我需要将相同的文本块附加到每个文件(当然还要覆盖原始文件)。
我想知道正确的 Bash shell 语法是什么。我会用猫吗?
我已经完成了一些批处理脚本,但我不是 Bash 专家。任何建议表示赞赏。
【问题讨论】:
-
覆盖还是追加,都是独占的?
标签: bash concatenation
我有一个充满文本文件的文件夹。我需要将相同的文本块附加到每个文件(当然还要覆盖原始文件)。
我想知道正确的 Bash shell 语法是什么。我会用猫吗?
我已经完成了一些批处理脚本,但我不是 Bash 专家。任何建议表示赞赏。
【问题讨论】:
标签: bash concatenation
使用附加重定向。
for f in *.txt
do
cat footer >> "$f"
done
【讨论】:
footer 是一个包含必须附加到每个文件的文本块的文件。
如果您需要通过脚本执行此操作,您可以使用 echo 和附加重定向将额外的文本放入文件中。
FILES=pathto/*
for f in $FILES ; do
echo "#extra text" >> $f
done
【讨论】:
sed -i.bak "$ a $(<file_block_of_text)" *.txt
【讨论】:
【讨论】:
非常简单,对我很有效
#!/bin/sh
FILES="./files/*"
for f in $FILES
do
echo '0000000' | cat - $f > temp && mv temp $f
done
【讨论】: