因此,可以使用 cat 轻松地在 bash 中合并文件:
cat *.txt > all.txt
但是如果有人想在输入文件之间插入一些内容,比如换行符,该怎么办呢?
答案1
需要 GNU sed
:
sed -s '$G' *.txt > all.txt
在每个文件后附加一行 8 个破折号和一个换行符
sed -s '$a--------' *.txt
你可以使用 sed '$d'
与这些比较:
在每个文件前插入一行破折号:
sed -s '1i--------' *.txt
执行相同操作,但在破折号后不加换行符:
sed -s '1s/^/--------/' *.txt
在每个文件的最后一行末尾放置一行破折号:
sed -s '$s/$/--------/' *.txt
用花括号将每个文件括起来:
sed -s -e '1i{' -e '$a}' *.txt
答案2
作为带有子 shell 的单行命令:
( for i in *.txt ; do cat $i ; echo 'separator here' ; done ) >all.txt
以下是子 shell 执行的脚本样式行:
对于我在 *.txt 中 做 猫$i echo ‘分隔符放在这里’ 完毕
在此示例中,分隔符的作用类似于页脚;echo
在 之前添加另一个分隔符即可添加页眉cat
。