我有一个有距离的文件,这些文件是'A到B'和'B到A'。我想过滤掉“B到A”行。我尝试了很多选项,但对awk语法感到困惑。
我试过的一件事是这段代码的变种
awk '!x[$1,$3]++'
我想找到一种方法来打印该行并将'A'和'B'存储为反向列的数组
awk '{if (a[$1,$3]=!0) print $0} a[$3,$1]++'
或
awk 'a[$1,$3]==0 a[$3,$1]++'
第一个复制除第一个之外的每一行。第二个没有打印线,阵列之间是否需要分隔符?
答案 0 :(得分:0)
awk
救援
根据您的数据更改字段数
$ cat dist
1 5
2 4
3 3
4 2
5 1
$ awk '($2,$1) in a{next} {a[$1,$2]; print}' dist
1 5
2 4
3 3
这也可以写成
$ awk '($2,$1) in a{next} ++a[$1,$2]' dist