Linux

如何根據特定欄位中的值從管道分隔的文件中刪除一行?

  • July 18, 2018

我有一個豎線分隔的文件,如下所示:

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

sed 範例:

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

當 NULL 始終位於行尾時的 sed 範例:

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

引用自:https://unix.stackexchange.com/questions/456704