用空白替换NULL字符串模式

时间:2016-02-05 17:28:47

标签: bash shell unix sh

我有一个管道分隔符文件,我需要用空格替换NULL字符串。 文件非常庞大,约为9 GB,包含200万条记录,并且有150列由管道分隔。

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

所需的输出

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

1 个答案:

答案 0 :(得分:3)

使用perl您可以使用前瞻:

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

<强>输出:

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

如果您没有perl,那么此sed也应该有效:

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

<强>输出:

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