2013-02-10 35 views
0

一個相當簡單的困境。sed - 在變量後的第一個空格停止

如何修改只是sed變量在一條線上像這樣:

_user=Det # The name of the user 

是:的

_user=ULTRAMONSTER # The name of the user 

...而不是什麼是錯在這裏?

$ sed -i "s/_user=.* */_user=ULTRAMONSTER/" script 

謝謝。

回答

1

喜歡本作例子:

sed -i 's/_user= *[^ ]*/_user=ULTRAMONSTER/' script 

.*的問題是,它匹配的一切,包括註釋。

+0

這很酷,但在兩者之間的空間'*'和'/'似乎一('sed的修剪變量和註釋之間的差距 - 我的/ _user = * [^] */_ user = ULTRAMONSTER /'腳本似乎正常工作)。 – Det 2013-02-10 20:17:37

+0

@Det是的,刪除了空間 – 2013-02-10 20:20:20

+0

K.我會標記這個答案,當我可以。 – Det 2013-02-10 20:21:57

1

使用awk,你可以像這樣

awk -F" " '{gsub("_user=.*","_user=ULTRAMONSTER",$1)}1' temp.txt 
相關問題