首页 > 解决方案 > 在 bash 列中搜索模式

问题描述

我正在 bash 上运行一个适用于 csv 文件的程序。我需要在列中搜索模式。

输入

column1,column2,column3,column4
1,5000,1000,3000,1000
2,3600,3000,6582,5840
3,2000,1500,100,1000
4,1000,500,30,1000

--

健康)状况

条件:获取第一列大于2000的值。

期望的输出

Column1
1,5000
2,3600

我尝试了以下代码但没有成功:

awk '{ if($2 > 2000) { print } }' p.csv > pattern.csv

标签: bashshellawk

解决方案


awk 'NR==1{print $1}; NR>1 && $2>2000{print $1,$2}' FS=',' OFS=',' file

输出:

第 1 列
1,5000
2,3600

请参阅:8 个强大的 Awk 内置变量——FS、OFS、RS、ORS、NR、NF、FILENAME、FNR NR是当前行号。


推荐阅读