如何根据特定字段中的值从管道分隔文件中删除行?

如何根据特定字段中的值从管道分隔文件中删除行?

我有一个竖线分隔的文件,如下所示:

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

如何删除第 4 列中包含 NULL 的行?

预期产出

968666|JOHN|M|DOB
898563|SAUL|NULL|DOB

答案1

sed 示例:

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

NULL 始终位于行尾时的 sed 示例:

sed '/NULL$/d' <file>

答案2

awk -F"|" '{if ($4!~/NULL/) {print $0} }'  file

相关内容