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 '****',因此在*.
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)