我有一个包含多行数据的文件。有些行包含三列,但大多数只包含两列。所有行都是单制表符分隔的。对于包含三列的那些,第三列通常是多余的,并且包含与第二列相同的数据,因此我想将其删除。
我想 awk 或 cut 是合适的,但我在如何测试三列的行上画了一个空白,所以我的脚本只能在这些行上工作。我知道 awk 是一种非常强大的语言,它具有逻辑和内置的东西,我只是不擅长它。
我看了一个类似的问题,但我不确定 awk 的答案是怎么回事。因为我只想删除一列,所以 -4 应该是 -1 吗?如果该行有两列怎么办?即使我不想做任何事情,它会删除第二个吗?
我将其修改为我认为的内容:
awk -F"\t" -v OFS="\t" '{ for (i=1;i<=NF-4;i++){ print $i }}'
但是当我(使用文件)运行它时,什么也没有发生。如果我更改 NF-1 或 NF-2,我会得到一些输出,但它只有几行而且只有第一列。
谁能告诉我我应该做什么?