2016-12-16 227 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