gpt4 book ai didi

linux - 在awk中根据其他数据过滤掉文件中的数据

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:41 25 4
gpt4 key购买 nike

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

  • 条件 1:当 $2 具有 $1 两种类型时($2$1 值大于 8000 且小于 8000),则选择 $1 的完整行 $2 的 < 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

有人可以就此提出建议吗?提前致谢

最佳答案

这是答案:我得到...

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

关于linux - 在awk中根据其他数据过滤掉文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37481969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com