我希望在awk中删除我的一列数据,但我发现使用的命令如$ column_A =""。 column_A是否真的以这种方式删除了?
例如,我希望删除第二列,我找到了一个解决方案:awk 'BEGIN{FS="\t";OFS="\t"}!($2="")'
,其打印结果如:$1^0^0$3
。似乎第二列的内容被删除但第二列。
答案 0 :(得分:2)
在阅读了dev-null的评论之后,我知道你在问什么......
我的回答是:这取决于你如何定义“删除一列”。
见这个例子:
kent$ echo "foo,bar,blah"|awk -F, -v OFS="," '{$2="";print}'
foo,,blah
kent$ echo "foo,bar,blah"|awk -F, -v OFS="," '{print $1,$3}'
foo,blah
你看到了区别吗?如果设置$x=""
列仍然存在,但它变为空字符串。所以FS
停留之前和之后。如果这是你想要的,那很好。否则只需跳过输出目标列,如第二个示例所示。
答案 1 :(得分:0)
我会使用cut
:
cut -d$'\t' -f1,3- file
-f1,3-
选择第一个字段,跳过字段2,然后选择字段3结束。