我有一个 20 列的 csv 文件。文件的第一部分是地理位置信息。我想要做的是找到某个记录的地理位置数据。首先如果标识用户“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,或者至少在正则表达式中包含分隔符以不匹配子字符串。
此外,您不想打印下一条记录(即整个下一行),但下一个字段......