将一个文件中的行作为行添加到另一个文件中

将一个文件中的行作为行添加到另一个文件中

我有 file1 ,其内容如下:

文件1

这 6 列是从 6 个不同的主机获取的,然后使用“-exec cp”命令呈现它们。这仅供参考。

现在,我有 6 个主机名 (file2) 的列表,我想将其添加为 file1 的第一行。

file2 的内容如下。

HOST1 
HOST2 
HOST3 
HOST4 
HOST5 
HOST6 

我需要这样的最终输出。

最终输出

我可以添加一列,但不能添加一行。

答案1

这是一种方法:

awk -vhead="$(tr '\n' ' ' <file2)" 'BEGIN{print head}{print}' file1 > newfile

tr命令用空格替换换行符,将“列”转换file2为“行”。这是awk作为变量传递的head,在其他内容之前打印。然后,简单地打印输入文件的每一行。

或者,您可以在以下位置完成整个操作awk

awk 'NR==FNR{printf "%s ",$0; next}FNR==1{print ""}1;' file2 file1 > newfile

NR是当前输入行号和FNR当前文件的行号。仅当读取第一个文件时,两者才会相等。将printf "%s ",$0; next打印当前行,\n末尾不带 a 并跳到下一行。只是在打印标题后FNR==1{print ""}添加一个,并且是“打印此行”的简写。\n1;awk

答案2

( echo $(cat file2) ; cat file1 ) | column -t > file3

相关内容