2016-02-05 33 views
1

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

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

所需的输出

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

回答

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| 
+1

谢谢!!!!!!! – Saurabh