gershwin.pages.dev

Como filtrar linhas de CSV com AWK por valor de coluna?

Filtrar linhas de um arquivo CSV por valor de coluna pode parecer uma tarefa simples, mas quando se trata de grandes volumes de dados, fazer isso manualmente é impraticável e propenso a erros. O AWK é uma ferramenta poderosa e leve, nativa de sistemas Unix/Linux, que permite processar arquivos texto de forma rápida e precisa, tornando-se a escolha ideal para esta tarefa.

Pré-requisitos

Passo 1: Entendendo a estrutura do arquivo CSV

Antes de aplicar o filtro, é fundamental conhecer a estrutura do seu arquivo CSV. Identifique o delimitador (geralmente vírgula, ponto e vírgula ou tabulação) e a posição da coluna que você deseja filtrar. Por exemplo, se o arquivo for separado por vírgulas, cada coluna será separada por ",".

Passo 2: Usando AWK para filtrar por valor exato

Para filtrar linhas onde uma coluna específica tenha um valor exato, use o comando AWK com a opção -F para definir o delimitador e uma condição para a coluna desejada. Por exemplo, para filtrar linhas onde a segunda coluna seja "São Paulo" em um arquivo separado por vírgulas:

awk -F',' '$2 == "São Paulo"' arquivo.csv

Passo 3: Filtrando por valor parcial ou padrão

Se você precisar filtrar por um valor parcial ou padrão, use a função match() ou expressões regulares. Por exemplo, para filtrar linhas onde a terceira coluna contenha a palavra "SP":

awk -F',' 'match($3, /SP/)' arquivo.csv

Passo 4: Salvando o resultado em um novo arquivo

Para salvar o resultado do filtro em um novo arquivo CSV, redirecione a saída do comando:

awk -F',' '$2 == "São Paulo"' arquivo.csv > filtrado.csv

Exemplo Prático

Considere o seguinte arquivo CSV de exemplo (dados.csv):

Nome Cidade Estado
João Silva São Paulo SP
Maria Santos Rio de Janeiro RJ
Pedro Costa São Paulo SP

Para filtrar apenas as linhas onde a cidade é "São Paulo", execute:

awk -F',' '$2 == "São Paulo"' dados.csv

O resultado será:

Nome Cidade Estado
João Silva São Paulo SP
Pedro Costa São Paulo SP

Conclusão

Com o AWK, você pode filtrar linhas de arquivos CSV por valor de coluna de forma rápida e eficiente, sem a necessidade de abrir editores complexos ou escrever scripts extensos. Este método economiza tempo e reduz significativamente a chance de erros manuais, permitindo que você se concentre no que realmente importa: a análise dos seus dados.