如何使用 shell 命令将行从一个文件插入到另一个文件?

如何使用 shell 命令将行从一个文件插入到另一个文件?

我想从file1的开头写 8 行file2

我的file1包含以下几行:

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear
# other stuff

我的file2包含以下几行:

.lruno := 72  
.infno := 1    
writedb     
clear

我的输出文件将是:

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear  
.lruno := 72  
.infno := 1    
writedb       
clear

答案1

您可以使用标准工具来完成。

paste

paste -sd'\n' file1 file2

sed

sed p file1 file2

答案2

就像是:

head -n8 file1 | cat - file2 > file2."$$" && mv file2."$$" file2

答案3

cat file1 file2 > output_file

Cat 是 concatenate 的缩写,这就是您想要做的事情。如果你想将结果保留在 file1 中,你可以将它们添加到末尾:

cat file2 >> file1

请注意,在第一种情况下,output_file 将被截断(使用>)。使用 double 将追加 ( >>)

答案4

ed

ed file2 <<END
0r file1
w
q
END

在第“0”行,读入文件“file1”,保存并退出

作为单行:printf "%s\n" "0r file1" w q | ed file2

相关内容