awk命令结合if和for

peti27

我有一个csv文件20列。文件第一部分中的是地理位置信息。我正在尝试做的是找到特定记录的地理位置数据。首先,if标识用户“ ROSA”。在该行上搜索前10列,如果其中任何一个包含“ GeoLocation”,则仅打印下一条记录,而不打印整行。

awk  -F"," '($0~/ROSA/) {for(i=1;i<=10;i++) {($i~/GeoLocation/) print $(i+1)}}' filename.csv

我想出了上面的行,但是我在打印的“ p”处被标记为语法错误。

你们能发现我所缺少的吗?

欧姆

试试这个:awk -F"," '($0~/ROSA/) {for(i=1;i<=10;i++) {if ($i~/GeoLocation/) print $(i+1)}}' filename.csv
另外,我将避免在整行中搜索您知道字段编号的ROSA,或者至少在正则表达式中包含分隔符以不匹配子字符串。
您也不想打印下一个记录(那将是整个下一行),而是下一个字段...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章