鉴于下表

 123456.451 entered-auto_attendant
 123456.451 duration:76 real:76
 139651.526 entered-auto_attendant
 139651.526 duration:62 real:62`
 139382.537 entered-auto_attendant

使用基于 Linux 的 bash shell 脚本,我想根据第 1 列的值(具有长数字的值)删除所有行。考虑到这个数字是一个可变数字

我试过
awk '{a[$3]++}!(a[$3]-1)' file
sort -u | uniq

但我没有得到这样的结果,在第一列的所有值之间进行比较,删除所有重复项并显示它
 123456.451 entered-auto_attendant
 139651.526 entered-auto_attendant
 139382.537 entered-auto_attendant

最佳答案

你没有给出预期的输出,这对你有用吗?

 awk '!a[$1]++' file

使用您的数据,输出为:
123456.451 entered-auto_attendant
139651.526 entered-auto_attendant
139382.537 entered-auto_attendant

此行仅打印唯一的 column1 行:
 awk '{a[$1]++;b[$1]=$0}END{for(x in a)if(a[x]==1)print b[x]}' file

输出:
139382.537 entered-auto_attendant

关于linux - 如何删除基于列值的重复行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22849757/

10-15 00:11