【问题标题】:filter rows based on range根据范围过滤行
【发布时间】:2020-02-21 23:56:35
【问题描述】:

我有一个大的 csv 文件,想根据第 2 列中的数字范围进行过滤和打印。在下面的示例中,介于 140 到 150 之间: 原始csv文件:

id,IC,TT
214497,140,1
214497,141.1,1
214497,145.3,1
214497,178.0,1
214497,141.2,2
214497,145.5,15
214497,148.2,1
214497,117.9,2
214497,183.9,1
214497,211.3,6

结果:

id,IC,TT
214497,140,1
214497,141.1,1
214497,145.3,1
214497,141.2,2
214497,145.5,15
214497,148.2,1

也可以制作两个或三个单独的范围(140-150)和(160-164)等... 谢谢

【问题讨论】:

  • 你尝试了什么?如果您想到 awk 来完成这项任务,这应该是微不足道的

标签: awk filter range


【解决方案1】:

这在 awk 中应该很简单:

awk -F"," 'NR==1||($2>=140&&$2<150)||($2>=160&&$2<=164)' yourfile

如果第一行 (NR==1) 或第二列 ($2) 介于 140150 之间或介于 160164 之间,这将打印该行。

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2016-11-19
    相关资源
    最近更新 更多