EDIT
我有一個文件是這樣的:
imagecolor = 0
arrayimagecolorcopy = 0
arrayimagecolorcopy3d = 0
使用sed替換包含'='的整個單詞?
當我使用sed -i -e 's/imagecolor=0/imagecolor=1/'
它將改變1和2線。但我只想讓它取代第一線。
我也試過sed與\ < \>和\ b \ b,但沒有運氣。它可能是'='號嗎?我們是否有像-w一樣的grep命令?
謝謝。
EDIT
我有一個文件是這樣的:
imagecolor = 0
arrayimagecolorcopy = 0
arrayimagecolorcopy3d = 0
使用sed替換包含'='的整個單詞?
當我使用sed -i -e 's/imagecolor=0/imagecolor=1/'
它將改變1和2線。但我只想讓它取代第一線。
我也試過sed與\ < \>和\ b \ b,但沒有運氣。它可能是'='號嗎?我們是否有像-w一樣的grep命令?
謝謝。
這似乎爲我工作:
$ echo 'imagecolor=0
> imagecolorcopy=0
> imagecolorcopy3d=0' > input.txt
$ sed -i -e 's/imagecolor=0/imagecolor=1/' input.txt
$ cat input.txt
imagecolor=1
imagecolorcopy=0
imagecolorcopy3d=0
如果你只是想使替代的整條生產線相匹配時,嘗試錨固正則表達式:
$ sed -i -e 's/^imagecolor=0$/imagecolor=1/' input.txt
對不起,我做了一個編輯。 – infinitloop 2010-03-26 21:20:00
如果我將imagecolor傳遞給一個函數,我可以在我的函數中做到這一點: sed -i -e's/^ $ 1 = 0 $/$ 1 = 1'input.txt – infinitloop 2010-03-26 21:26:54
@rashid,是的,但你需要雙倍報價,而不是單引號。順便問一下,你的原始問題是否解決了? – 2010-03-26 21:31:12
每馬克的帖子,應該工作。 – 2010-03-26 21:19:55