將一個文件中的行作為行新增到另一個文件中

將一個文件中的行作為行新增到另一個文件中

我有 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

相關內容