Como remover uma linha de um arquivo delimitado por pipe, com base no valor de um determinado campo?

0

Eu tenho um arquivo delimitado por barra vertical da seguinte forma:

968666|JOHN|M|DOB
145465|DAVID|M|NULL
898563|SAUL|NULL|DOB
968666|JOHN|F|NULL

Como excluo as linhas que têm NULL na quarta coluna?

Saída esperada

968666|JOHN|M|DOB
898563|SAUL|NULL|DOB
    
por Bala.C 17.07.2018 / 10:15

2 respostas

2

exemplo de sed:

sed '/\|.*\|.*\|NULL/d' <file>

exemplo sed quando NULL está sempre no final da linha:

sed '/NULL$/d' <file>
    
por 18.07.2018 / 16:12
2
awk -F"|" '{if ($4!~/NULL/) {print $0} }'  file
    
por 17.07.2018 / 19:07