我有一个文本文件,要在其中删除一些行。 该文件的示例内容如下-
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
------------------
and so on
如其在1.1和10.2值上方看到的重复几次,我想保留1.1和10.2的前10行,并像它们一样(这些值是不同的,并且以数百个不同的数字表示),但是删除所有后续重复项,即使每次v参数的值都不同,并且还希望保留非重复数据。
我尝试使用uniq进行排序,但是它只会消除相同的匹配重复项,而不是基于特定条件。
sort file.txt | uniq -i
答案 0 :(得分:1)
这是个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
它使用1.1
或10.2
以及所有其他所有内容打印所有行的第10行
答案 1 :(得分:1)
您需要的声音是:
$_POST
例如
awk '++cnt[$NF]<11' file