0
我正在使用awk在製表符分隔文件中插入新列,然後我希望輸出製表符分隔。然而,而不是預期的5製表符分隔欄,我只得到2awk在插入列後添加' t'到輸出文件
awk -v var=$REL_TYPE -F "\t" '{$3=var FS $3 ;}1' $INPUT_FILE > OFS="\t" $OUTPUT_FILE
這裏是輸入數據:
a1000 a1001 213 1
a1000 a7020 164 2
a1000 a6004 160 3
a1000 a7004 124 4
這裏的輸出數據:
a1000 a1001 inserted_column 213 1
a1000 a7020 inserted_column 164 2
a1000 a6004 inserted_column 160 3
a1000 a7004 inserted_column 124 4
乍一看,這看起來很完美,但輸出只有兩個由'\ t'分隔的列,在$ 3之後。
'OFS =「\ t」'是您重定向到的輸出文件,它不被用作awk變量賦值。 – Barmar
在讀取輸入文件之前,您還需要對'OFS' *進行賦值,使其對輸入文件生成的輸出生效。因此'awk -v ... -F ...'腳本...'OFS ='\ t'「$ INPUT_FILE」>「$ OUTPUT_FILE」'。 –