根据 awk 中的其他文件从文件中过滤掉数据



我有一个大文件,有 50 多列和 100K 行,由 | 分隔。现在$2 (col 2) 具有多种类型的 $1 (col 1) 值,这意味着 col 2 将被重复。所以我对文件进行了排序。我现在需要根据以下条件提取/过滤结果文件:

  • 条件 1 :当$2具有两种类型的$1$2$1 值大于 8000 且小于 8000)时,选择给定$2 $1 <8000 的完整行
  • 条件 2:如果$2只有 $1 > 8000则选择具有最大值$8的完整行

例如:源文件

4000|1234||||||23
5000|1234||||||22
9000|1234||||||25
10000|123|||||||22
22000|456|||||||27
15000|456|||||||29

结果文件将具有:

9000|1234||||||25
10000|123|||||||23
15000|456|||||||29

任何人都可以就此提供建议吗?提前致谢

这是答案:I有。。。

 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] ;}'

相关内容

  • 没有找到相关文章

最新更新