我有一个大文件,有50个列和100K行由|
分隔。现在$2
(第2列)有多种$1
(col 1)值,这意味着col 2将被重复。所以我已经对文件进行了排序。
我现在需要在以下条件的基础上提取/过滤结果文件:
$2
同时具有$1
类型($1
的{{1}}值大于8000且小于8000)时,请选择完整用于$2
的行给定$1
$2
仅有$2
,则选择具有最大$1 > 8000
值的完整行例如:源文件
$8
结果文件将包含:
4000|1234||||||23
5000|1234||||||22
9000|1234||||||25
10000|123|||||||22
22000|456|||||||27
15000|456|||||||29
有人可以就此提出建议吗?提前致谢
答案 0 :(得分:0)
这是答案:我得到了......
sort -n -t\| -k2 -k1 < sortexp.txt |awk -F\| '$1 < 8000 { a[$2]++ ; print } $1 >= 8000 { if ( !a[$2] && ( !e[$2] || e[$2]<$8 )) {u[$2]=$0;e[$2]=$8;} ; } END { for ( i in u ) print u[i] ;}'