Eu tenho um arquivo CSV que se parece com este formato:
text1,text2,string1,string2
text3,text3,string3,string2
text4,text5,string1,string2
text6,text6,string6,string7
Eu quero extrair linhas quando a coluna1 e a coluna2 não forem iguais. O resultado esperado no exemplo acima seria:
text1,text2,string1,string2
text4,text5,string1,string2
Quando coluna1 e coluna2 não são iguais. Estou familiarizado com comandos que me permitem extrair uma coluna específica como a seguinte para extrair a primeira coluna:
cat input.csv | cut -d ',' -f1 > output.csv
Supondo que este seja um arquivo CSV simples , sem nenhuma incorporação de vírgulas ou novas linhas nos campos dos dados reais, você pode usar
awk
para fazer isso:Esta é uma forma abreviada de escrever
e define o separador de campo de entrada como uma vírgula e imprime cada linha se o primeiro e o segundo campos (
$1
e$2
) não forem idênticos.Uma variante Perl equivalente:
Solução GNU
sed
:A saída: