答案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 ""}
添加一个,并且是“打印此行”的简写。\n
1;
awk
答案2
( echo $(cat file2) ; cat file1 ) | column -t > file3