Eu tenho um arquivo csv 20 colunas. na primeira parte do arquivo estão as informações de geolocalização. O que estou tentando fazer é encontrar os dados de geolocalização de um determinado registro. Primeiro se identifica o usuário "ROSA". Nessa linha pesquise nas primeiras 10 colunas e se alguma delas contiver "GeoLocation" imprima apenas o próximo registro e não a linha inteira.
awk -F"," '($0~/ROSA/) {for(i=1;i<=10;i++) {($i~/GeoLocation/) print $(i+1)}}' filename.csv
Eu criei a linha acima, mas estou sendo sinalizado por erro de sintaxe diretamente no "p" na impressão.
Vocês conseguem identificar o que estou perdendo?
Tente mudar de
Para
Tente isto:
awk -F"," '($0~/ROSA/) {for(i=1;i<=10;i++) {if ($i~/GeoLocation/) print $(i+1)}}' filename.csv
.Além disso, eu evitaria pesquisar a linha inteira por ROSA de Você sabe o número do campo ou pelo menos incluir os delimitadores em regex para não corresponder às substrings.
Além disso, você não deseja imprimir o próximo registro (que seria toda a próxima linha), mas o próximo campo ...