awk - como ignorar correspondências com curingas?

1

Eu quero processar um arquivo csv com base no valor da 3ª coluna e salvar as linhas correspondentes em um arquivo separado.

#!/bin/bash awk -F, '$3 ~ /0/ {print}' ./inputfile.csv > ./out/output.csv

O que eu quero é apenas 0 valores na 3ª coluna, mas usando o comando acima, o arquivo de saída contém os valores da 3ª coluna 0, 10, 20, 100, etc. (qualquer valor com 0 nele).

Como posso dizer ao awk para ignorar as combinações de curingas e usar apenas o valor 0 absoluto na terceira coluna?

    
por Bharat G 02.10.2015 / 16:52

1 resposta

7

Você pode fazer isso:

awk -F, '$3 == "0"' ./inputfile.csv > ./out/output.csv

~ corresponde ao padrão, que você não deseja aqui. == corresponde à string literal "0" e nada mais. Também removi a instrução print , pois está implícita se você não der um bloco de código.

Você também pode considerar o uso de uma biblioteca de análise de CSV real, pois a sintaxe pode ser mais complicada do que apenas as vírgulas (por exemplo, lidar com aspas e escapar).

    
por 02.10.2015 / 16:55

Tags