如何将文件与 bash 中的单独数据连接起来?

Rog*_*vag 10 bash

因此,可以使用 cat 轻松地在 bash 中加入文件:

cat *.txt > all.txt
Run Code Online (Sandbox Code Playgroud)

但是如果想在输入文件之间插入一些东西,比如换行怎么办?

Den*_*son 9

需要 GNU sed

sed -s '$G' *.txt > all.txt
Run Code Online (Sandbox Code Playgroud)

在每个文件后附加一行 8 个破折号和一个换行符

sed -s '$a--------' *.txt
Run Code Online (Sandbox Code Playgroud)

你可以使用你的 sed '$d'

与这些相比:

在每个文件前插入一行破折号:

sed -s '1i--------' *.txt
Run Code Online (Sandbox Code Playgroud)

做同样的事情,但在破折号后没有换行符:

sed -s '1s/^/--------/' *.txt
Run Code Online (Sandbox Code Playgroud)

在每个文件的最后一行末尾放置一行破折号:

sed -s '$s/$/--------/' *.txt
Run Code Online (Sandbox Code Playgroud)

用花括号将每个文件括起来:

sed -s -e '1i{' -e '$a}' *.txt
Run Code Online (Sandbox Code Playgroud)


gor*_*lla 8

作为带子壳的单衬:

( for i in *.txt ; do cat $i ; echo 'separator here' ; done ) >all.txt
Run Code Online (Sandbox Code Playgroud)

下面是 subshel​​l 执行的内容,分为脚本样式的行:

对于我在 *.txt
做
猫$i
echo '分隔符放在这里' 
完毕

在这个例子中,分隔符就像一个页脚;通过echocat.

  • 不需要子shell,您应该在变量扩展周围使用双引号来保护文件名中的任何空格。`for i in *.txt; 做猫“$i”;回声'东西'; 完成> all.txt` (2认同)