Text-Processing
將第一列附加到文件
我有一個看起來像這樣的文件:
Heading1,Heading2 value1,value2
另一個看起來像這樣:
Row1 Row2
我怎樣才能將兩者結合起來成為:
Row1,Heading1,Heading2 Row2,value1,value2
有效地在第一列的位置附加一列?
工作
paste
:paste -d, f2.txt f1.txt
-d,
將分隔符設置為,
(而不是製表符)與
awk
:awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt
BEGIN {FS=OFS=","}
將輸入和輸出欄位分隔符設置為,
NR==FNR {a[NR]=$0; next}
: 對於第一個文件 (f2.txt
),我們將記錄號作為鍵保存到關聯數組 (a
) 中,其值為對應的記錄{print a[FNR], $0}
:對於第二個文件,我們只是列印帶有記錄編號鍵值的a
記錄例子:
% cat f1.txt Heading1,Heading2 value1,value2 % cat f2.txt Row1 Row2 % paste -d, f2.txt f1.txt Row1,Heading1,Heading2 Row2,value1,value2 % awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt Row1,Heading1,Heading2 Row2,value1,value2