2012-07-20 38 views
0

更換PATH我在.bashrc以下條目:SED中的.bashrc

PATH=$PATH:/home/user/abc/bin;export PATH; # ADDED BY INSTALLER - DO NOT EDIT OR DELETE THIS COMMENT 

我想替換/home/user/abc/bin爲我選擇的任何路徑。我如何使用sed來做到這一點?

我有以下幾點:

sed 's,PATH=[^;]*,PATH=$PATH/home/user/app/2.1,' -i ~/.bashrc 

但是,這將取代任何與PATH開始,我怎麼可以指定只選擇具有PATH什麼開始,但也包括字符串ADDED BY INSTALLER - DO NOT EDIT OR DELETE THIS COMMENT

+0

爲什麼用'sed'爲一個條目?你需要多次做嗎? – 2012-07-20 22:08:35

回答

0

你這樣做:

NEWPATH="your_new_path" sed -i "/ADDED BY INSTALLER - DO NOT EDIT OR DELETE THIS COMMENT/ s:/home/user/abc/bin:$NEWPATH:" .bashrc 
0

隨着錨到開頭(^)和行尾($),如下所示:

sed -i.bak -e 's,^PATH=[^;]*\(.*ADDED BY INSTALLER - DO NOT EDIT OR DELETE THIS COMMENT\)$,PATH=$PATH/home/user/app/2.1\1,' ~/.bashrc 

爲了安全起見,我已將.bak後綴添加到就地編輯中。