Text-Processing

將第一列附加到文件

  • August 16, 2017

我有一個看起來像這樣的文件:

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

引用自:https://unix.stackexchange.com/questions/386346