sed 使用正则表达式小记

需求:bash控制台提示符下,显示全路径

环境:centos 6.9

在文件/etc/bashrc的第36行:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

改为:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "

问题至此解决。

====================================

思考:能不能用sed命令一键修改,以后自动化时,将命令写入脚本即可修改。

方法一:直接注释36行,再追加要的内容到36行后面

# 下面这句可以用,但要保证这一行是36行

sed -ri -e '36s/  (.*)/  #\1/g' -e '36a\  [ "$PS1" = "\\\\s-\\\\v\\\\\\$ " ] && PS1="[\\u@\\h \\w]\\\\$ "' /etc/bashrc

方法二:

#下面的可以查找到内容

sed -n -r 's#(.*PS1=\"\[\\u\@\\h \\)W(\]\\\\\$ \")#\1\w\2#gp' /etc/bashrc

sed -n -r 's#(.*\PS1=\"\[\\u\@\\h \\)W(\]\\\\\$ \")#\1\w\2#gp' /etc/bashrc

#修改命令为

sed -i -r 's#(.*PS1=\"\[\\u\@\\h \\)W(\]\\\\\$ \")#\1\w\2#g' /etc/bashrc

sed -i -r 's#(.*\PS1=\"\[\\u\@\\h \\)W(\]\\\\\$ \")#\1\w\2#g' /etc/bashrc

 

 

posted @ 2018-03-21 22:46  WIN&迷失  阅读(266)  评论(0编辑  收藏  举报