如何使用sed从另一个文件添加新行

Tay*_*unS 3 sed shell-script text-processing

我试图找到sed命令,这样我就可以把filenamefilename1。这是我的两个单独的文件。

输入filename有:

Cindy   11 22 54
Chester 48 12 84
Run Code Online (Sandbox Code Playgroud)

输入filename1有:

 Name  Class1 Class2 Class3
Lee      92     94     88
Chancy   91     85     95
Dora     99     77     96


Jefferry 84     98     90
Run Code Online (Sandbox Code Playgroud)

这是我需要的结果(输出):

Name   Class1 Class2 Class3
Lee      92     94     88
Chancy   91     85     95
Dora     99     77     96
Cindy    11     22     54
Chester  48     12     84
Jefferry 84     98     90
Run Code Online (Sandbox Code Playgroud)

如果我需要澄清任何事情,请告诉我。基本上 Cindy 和 Chester 必须在 Dora 和 Jefferry 之间。

jim*_*mij 7

要将所有行添加filenamefilename1usingsed命令,您可以执行以下操作:

sed r filename1 filename
Run Code Online (Sandbox Code Playgroud)

但是请注意,结果将与您问题中的输出略有不同,即:

Name  Class1 Class2 Class3
Lee      92     94     88
Chancy   91     85     95
Dora     99     77     96
Jefferry 84     98     90
Cindy    11     22     54
Chester  48     12     84
Run Code Online (Sandbox Code Playgroud)

编辑

一些sed对这个问题有用的附加信息:

  • filename在第 4 行之后添加filename1

    sed '4 r filename' filename1

  • filename从“Dora”开始的行之后添加filename1

    sed '/^Dora/ r filename' filename1

  • filename在第 4 行之后添加并从 中删除任何空行filename1

    sed '/^$/d;4 r filename' filename1