根据范围过滤行

时间:2020-02-21 15:48:08

标签: awk filter range

我有一个较大的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)等... 谢谢

1 个答案:

答案 0 :(得分:0)

这在awk中应该非常简单:

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

如果是第一行(NR==1)或第二列($2)在140150之间或{{1 }}和160