2012-07-20 65 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后缀添加到就地编辑中。