Awk 根据特定的重复错误从文本文件中删除重复数据

Awk 根据特定的重复错误从文本文件中删除重复数据,awk,sed,grep,Awk,Sed,Grep,我有一个文本文件,我想删除其中的一些行。 下面是文件内容的示例-- 正如上面所看到的,1.1和10.2的值重复了好几次,我想保留1.1和10.2的前10行和它们类似的内容(这些值是不同的,并且有上百个不同的数字)但删除所有后续重复项,即使v参数的值每次都不同,并且希望保留非重复数据 我尝试使用uniq进行排序,但它只消除相同的匹配重复项,而不是基于特定条件 sort file.txt | uniq -i 这是一个awk awk 'a[$4==1.1 || $4==10.2]++<10 {

我有一个文本文件,我想删除其中的一些行。 下面是文件内容的示例--

正如上面所看到的,1.1和10.2的值重复了好几次,我想保留1.1和10.2的前10行和它们类似的内容(这些值是不同的,并且有上百个不同的数字)但删除所有后续重复项,即使v参数的值每次都不同,并且希望保留非重复数据

我尝试使用uniq进行排序,但它只消除相同的匹配重复项,而不是基于特定条件

sort file.txt | uniq -i
这是一个awk

awk 'a[$4==1.1 || $4==10.2]++<10 {print;next} !($4==1.1 || $4==10.2)' file
v1 has output 1.1
v2 has output 10.2
v3 has output 5.4
v4 has output 1.1
v5 has output 10.2
v6 has output 12
awk'a[$4==1.1 | |$4==10.2]++这是一个awk

awk 'a[$4==1.1 || $4==10.2]++<10 {print;next} !($4==1.1 || $4==10.2)' file
v1 has output 1.1
v2 has output 10.2
v3 has output 5.4
v4 has output 1.1
v5 has output 10.2
v6 has output 12

awk'a[$4==1.1 | |$4==10.2]++听起来你只需要:

awk '++cnt[$NF]<11' file

awk'++cnt[$NF]听起来你需要的只是:

awk '++cnt[$NF]<11' file

awk'++cnt[$NF]上述问题的答案很好,但我的要求是删除重复的数字,如1.1和其他类似的数字(它们不同,并且有数百个数字)。我更新了这个问题,所以它更容易理解。@阿玛吉辛格,因为你改变了这个问题,Eds的答案才是你想要的答案。这个答案对上面的问题很好,但我的要求是删除重复的数字,比如1.1和很多其他类似的数字(它们是不同的,有几百个数字)。“我更新了这个问题,所以它更容易理解。”@AmarjitSingh,因为你改变了这个问题,Eds的答案就是你想要的答案。