我使用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'分隔。
答案 0 :(得分:1)
您没有正确设置OFS
。在>
之后放置赋值使其成为要写入的输出文件,因此它不会被解析为变量赋值。以下作品:
awk -v var=$REL_TYPE -v OFS="\t" -F "\t" '{$3=var FS $3 ;}1' $INPUT_FILE > $OUTPUT_FILE