在bash中将文件附加到另一个文件的中间

时间:2017-09-26 10:09:08

标签: linux bash file merge append

我需要在另一个文件的特定位置附加一个文件。 我得到了行号,我的文件是:

file1.txt
  

     

上午

     

曲奇

第二个是

file2.txt
  

     

     

     

命名

所以,在解决方案之后,file1.txt应该像

  

     

上午

     

     

     

     

命名

     

曲奇

解决方案应该与#34;等字符的存在兼容。和/在两个文件中。

任何工具都可以,只要它是原生的(我的意思是,没有新的软件安装)

谢谢!

3 个答案:

答案 0 :(得分:2)

请您试着跟随并告诉我这是否对您有帮助。

awk 'FNR==3{system("cat file2.txt")} 1' file1.txt

输出如下。

I
am
a
black
dog
named
Cookie

说明:在读取名为file1.txt的Input_file时检查行号是否为3,如果是,则使用awk的系统实用程序来帮助我们调用shell命令,然后我我使用cat命令打印file2.txt。然后提到1将打印file1.txt中的所有行。因此,我们可以将file2.txt中的行连接到file1.txt。

答案 1 :(得分:1)

除了RavinderSingh13建议使用sed之外的其他选项: 要在特定行之后将file2.txt的文本添加到file1.txt

sed -i '2 r file2.txt' file1.txt

输出:

I
am
a
black
dog
named
Cookie

进一步在匹配的模式后添加文件:

sed -i '/^YourPattern/ r file2.txt' file1.txt

答案 2 :(得分:1)

怎么样

head -2 file1 && cat file2 && tail -1 file1

您可以使用

计算在file1中决定headtail参数的行数
wc -l file1