
答案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