2016-12-16 179 views
0

我有一个生成为SQL查询输出的文件。我需要用空白替换文件中的空值,所以像 sed -e"s/null//g"会起作用。sed替换特定的子字符串

但是,有一个'null /'形式的有效字符串(带有一个尾部正斜杠),不应该被替换。有没有办法在保留'null /'的情况下只替换'空'值?

回答

2

sed的一行代码:

sed 's#null\([^/]\|$\)#\1#g' file 

应您的要求工作。

它搜索模式:null and followed by a non-slash char (or EOL)

followed non-slash char取代。

因此,null/将不会被触及。

+0

如果'null'是作为行结束? – mouviciel

+0

@mouviciel好点。添加'或EOL' – Kent

+0

完美!谢谢 – Craig

0

我觉得这个命令应该是足够了:

sed -e "s/null[^/]//g" 
+1

这将改变'可空' - >'无法',但我认为OP预计'能够' – Kent

+0

我不认为OP有一个问题与'空',当它在一个单词中,但可以很容易地修复 – bracco23