合并两个文本文件并在它们之间添加一些分隔符?

Tim*_*Tim 17 text-processing

cat file1 file2将合并两个文本文件。但是如果我想在它们之间添加一些分隔符,比如一行或两行********************************,我是否必须打开第一个文件,并在其末尾添加该行,或者打开第二个文件并在其顶部添加该行,然后运行该cat命令?可以通过运行命令来完成吗?

Ant*_*hon 19

在bash和zsh你可以这样做:

cat file1 <(echo '********************************') file2
Run Code Online (Sandbox Code Playgroud)

或正如 mikeserv 在他的评论中指出的那样(在任何 shell 中):

echo '********************************' | cat file1 - file2
Run Code Online (Sandbox Code Playgroud)

在 Bash 中,David Z 评论道:

cat file1 - file2 <<< '********************************'
Run Code Online (Sandbox Code Playgroud)

将显示文件中的任何换行符。如果您不想在“分隔符”之后出现换行符(例如,如果file2以换行符开头),您可以使用echo -n '****',因此在*.

  • 你可以在任何 shell 中做同样的事情,比如 `echo '**********************' |cat file - file2` (8认同)

Ram*_*esh 6

cat从这里找到的另一种不使用的方法,

awk 'FNR==1{print "******"}{print}' file1 file2 | sed '1d'
Run Code Online (Sandbox Code Playgroud)

最后一个sed 1d管道是删除第一行,该行也将具有分隔符。

但是,sed如果我们按照1_CR在他的评论中建议的那样使用命令,则可以很好地避免最终使用。

awk 'FNR==1 && NR!=1 {print "******"}{print}' file1 file2
Run Code Online (Sandbox Code Playgroud)