sed 命令语句 细解

狮子Grant 发布于 10/12 16:49
阅读 73
收藏 0

[oracle@centos ~]$ grep -i '#syspassword' /home/oracle/dbca.rsp.1
#SYSPASSWORD = password
[oracle@centos ~]$ sed -i -e '/^#SYSPASSWORD = /s#=.*$#= 111111#' /home/oracle/dbca.rsp.1
[oracle@centos ~]$ grep -i '#syspassword' /home/oracle/dbca.rsp.1
#SYSPASSWORD = 111111
[oracle@centos ~]$
有人知道,这条语句中间那一点 /s#=.*$# 是啥意思 吗,是设定了一个变量吗,如果 要在改值的同时把前面的# 号也去掉,该怎么写/有没有大神知道。

加载中
0
森林羊
森林羊

/^#SYSPASSWORD = / 是一段,匹配“#SYSPASSWORD =”这条语句

s#=.*$#= 111111# 是另一段, 把=.*$ 替换为= 111111,

这里的#只是分隔符,比如s#a#b就是把a替换为b

如果是前面去#的可以直接sed 's/^#SYSPASSWORD = .*$/SYSPASSWORD = 111111/g',不用写得那么麻烦

自己先测试下后再使用sed -i

 

狮子Grant
明白了,非常感谢你的帮助!
返回顶部
顶部