Awk 使用命令行从列值中选择行
我有一个.tsv文件,格式如下:Awk 使用命令行从列值中选择行,awk,command-line,Awk,Command Line,我有一个.tsv文件,格式如下: Year Region Subfunction Total 2007 Midwest General administration 4,652,314.25 2007 Midwest Child and teenager assistance 3,066,433.22 2007 Midwest Basic assistance 45,653,4
Year Region Subfunction Total
2007 Midwest General administration 4,652,314.25
2007 Midwest Child and teenager assistance 3,066,433.22
2007 Midwest Basic assistance 45,653,414.66
2007 Midwest International cooperation 985,859.30
如何使用两列条件打印所有行,例如,打印年份==2009和地区==south的所有行
awk '$1==2009 && tolower($2)=="south"' file
如果要打印页眉,可以
awk 'NR==1 || (...)'
如果要打印页眉,可以
awk 'NR==1 || (...)'
我也应该这样做。这假设年份在开头显示为完整的4位数字(注意^
)
我也应该这样做。这假设年份在开始时显示为完整的4位数字(注意
^
)tolower($2)
是一个不错的选择:-)PlusOneThank you@karafka!太好了@karafka我如何在结果中保留标题(年份、地区、子功能、总计)?挑剔:添加-F'\t'
,因为OP确实说这是一个TSV文件,所以我们知道,在他们的真实数据中,一个地区可能是“北欧”或其他有空格的地方。是的,如果在示例中包含这样的情况(如果可能发生),那就太好了,但是在这种情况下,OP甚至没有包括他想要在样本中找到的区域tolower($2)
触感很好:-)PlusOneThank you@karafka!太好了@karafka我如何在结果中保留标题(年份、地区、子功能、总计)?挑剔:添加-F'\t'
,因为OP确实说这是一个TSV文件,所以我们知道,在他们的真实数据中,一个地区可能是“北欧”或其他有空格的地方。是的,如果在示例中包含这样的情况(如果可能发生),那就太好了,但是在这种情况下,OP甚至没有包括他想要在样本中找到的区域!