2015-05-13 443 views
-2

我有一個名爲/ data/user/sam的特殊字符的字符串,我想用/ data/sam替換它並將其寫入文本文件稱爲sample.txt。我能夠這樣做,但它繼續追加sample.txt中的結果再次運行該命令。它應該每次都替換它而不是追加。sed用特殊字符替換另一個字符串的特殊字符的命令

下面是摘錄: -

sed 's/"\/data\/user\/sam"/"\/data\/sam"/g' sample.txt 

產出爲sample.txt上運行兩次

/data/sam/data/sam 

它應該是:

/data/sam 

上運行多次,用戶想。

+2

我無法複製您的示例。雙引號應該在正則表達式還是輸入中?一次運行命令*的結果是什麼*? –

回答

0

您可以指定模式的分隔符(在這裏我選擇#,這可能與衝突的路徑名):

sed 's#/data/user/sam#/data/sam#g' sample.txt 

使用選項-i進行就地替換。

+0

這是一個很好的提示,但它沒有回答這個問題。相反,它應該是一個評論。 –