将文件内容和自定义文本串联输出到新文件中

将文件内容和自定义文本串联输出到新文件中

抱歉问了一个菜鸟问题,但是,好吧,我菜鸟,所以...

给定两个文件,file1比如说内容,text1以及file2内容text2,我想创建一个file3包含内容的新文件text1newtextinbetweentext2。我希望有一些命令像

cat file1 (dontknowwhat "newtextinbetween") file2 > file3

有一些dontknowwhat可以做我想要的吗?如果不是,最佳方法是什么?

答案1

这里有两种方法:

  1. 对命令进行分组

     $ { cat file1; echo "newtextinbetween"; cat file2; } > file3
     $ cat file3
     text1
     newtextinbetween
     text2
    
  2. 使用子外壳

     $ ( cat file1; echo "newtextinbetween"; cat file2 ) > file3
     $ cat file3
     text1
     newtextinbetween
     text2
    
  3. 使用命令替换

     $ printf '%s\nnewtextinbetween\n%s\n' "$(cat file1)" "$(cat file2)" > file3
     $ cat file3
     text1
     newtextinbetween
     text2
    

    如果您不希望每个块之间有换行符,您可以这样做:

     $ printf '%snewtextinbetween%s\n' "$(cat file1)" "$(cat file2)" > file3
     $ cat file3
     text1newtextinbetweentext2
    

答案2

另一种方法是使用进程替换:

cat file1 <(echo "newtextinbetween") file2 > file3

编辑:如果您不知道echo要添加换行符,请echo -n改为使用。

相关内容