用空白替换 NULL 字符串模式

Replace NULL string pattern with blank

我有一个竖线分隔符文件,我需要在其中用空白替换 NULL 字符串。 文件非常大,大约 9 GB,包含 200 万条记录,并且有 150 列由竖线分隔。

PQR|NULL|NULL|NULL ABC|ABC NULL XYZ|XYZ NULL|NULL

期望输出

PQR|||NULL ABC|ABC NULL XYZ|XYZ NULL|

使用 perl 你可以为此使用前瞻:

perl -pe 's/(?<=\|)NULL(?=\||$)//g' file

输出:

PQR|||NULL ABC|ABC NULL XYZ|XYZ NULL|

如果您没有 perl 那么这个 sed 应该也可以:

sed 's/|NULL|/||/g; s/|NULL\(|\|$\)/|/g' file

输出:

PQR|||NULL ABC|ABC NULL XYZ|XYZ NULL|