Awk添加' \ t'插入列后输出文件

时间:2016-04-26 21:34:16

标签: bash awk

我使用awk在制表符分隔文件中插入新列,然后我希望输出以制表符分隔。但是,我没有预期的5个制表符分隔列,而是只得到2.

 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

乍一看,这看起来很完美,但是在3美元之后输出只有两列由' \ t'分隔。

1 个答案:

答案 0 :(得分:1)

您没有正确设置OFS。在>之后放置赋值使其成为要写入的输出文件,因此它不会被解析为变量赋值。以下作品:

awk -v var=$REL_TYPE -v OFS="\t"  -F "\t" '{$3=var FS $3 ;}1' $INPUT_FILE > $OUTPUT_FILE