目录
修改配置项的值
multi_cluster_set_ha = yes 改为multi_cluster_set_ha = no
命令:
sed -i 's/^参数名=.*/参数名=新值/' 配置文件路径
例子一:
要将vim /etc/onestor/onestor.conf中的
multi_cluster_set_ha = yes
handy_ha_needed = yes
改为:
multi_cluster_set_ha = no
handy_ha_needed = no
sed -i 's/^multi_cluster_set_ha.*\+=.*/multi_cluster_set_ha = no/' /etc/onestor/onestor.conf
sed -i 's/^handy_ha_needed.*\+=.*/handy_ha_needed = no/' /etc/onestor/onestor.conf
旧方案脚本:sed -i 's/^multi_cluster_set_ha[[:space:]]\+=.*/multi_cluster_set_ha = no/' /etc/onestor/onestor.conf sed -i 's/^handy_ha_needed[[:space:]]\+=.*/handy_ha_needed = no/' /etc/onestor/onestor.conf
因里面的[[:space:]] 代表匹配任意个空格(但不代表0个!!),遇到没有空格的就失败,所以用上面的替换,“.*”代表“”内任意个字符。
详细说明见文章末尾:
原文链接:https://blog.csdn.net/bandaoyu/article/details/120047612
读取配置项的值
获取“public_addr=172.17.31.109”等号左边的名字public_addr
item=`cat /etc/ceph/ceph.conf |grep -E 'public_addr'`&&echo ${item%%=*}
获取“public_addr=172.17.31.109”等号右边的值 72.17.31.109
line=`cat /etc/ceph/ceph.conf |grep -E 'public_addr'`&&echo ${line#*=}
替换/修改
PermitRootLogin no 替换成PermitRootLogin yes
sudo sed -i "s/PermitRootLogin no/PermitRootLogin yes/g" /etc/ssh/sshd_config
在匹配行行首/行尾添加字符(#)
在每一行的行首/尾添加字符串
sed
-i
's/.*/行首添加内容&行尾添加内容/'
文件名
在匹配行的行首/尾添加字符串
在包含“STATD#u PORT”的行开头添加“#”注释符号
sed -i '/STATD_PORT/s/^/#/' /tmp/file
在与“callout”匹配的行的末尾添加“your text”
sed -i '/callout/s/$/your text/' /tmp/file
在以“STATD”开头的行的 末尾添加“your text”
sed -i '/^STATD/s/$/your text/' /tmp/file
几点说明:
1."^"代表行首,"$"代表行尾
原文链接:https://blog.csdn.net/bandaoyu/article/details/120047612
去掉匹配行行首/行尾字符(#)
去掉行首#,"^"代表行首
sed -i '/have a nice day/ s/^#//' a.txt
# /have a nice day/ 代表匹配,s/^abcdf// 代表行首的abcdf字符串替换为后面两斜杠里的内容,这里为空,即删除。
去掉行尾#,"$"代表行尾
sed -i '/have a nice day/ s/$#//' a.txt
#匹配行前加
我的记法是a = after ,i = in front
在匹配“2222222222”前面添加“3333333333”,我的记法是a = after ,i = in front
sed -i '/2222222222/i\3333333333' test.txt
#匹配行后加
我的记法是a = after ,i = in front
在匹配“2222222222”后面添加“3333333333”,我的记法是a = after ,i = in front
sed -i '/2222222222/a\3333333333' test.txt
#匹配行前后加
加反斜杠只是为了容易区分,可以不用:
sed -i '/allow 361way.com/iallow www.361way.com' the.conf.file
sed -i '/allow 361way.com/aallow www.361way.com' the.conf.file
这就就可以很方便的看出要在某一行前或某一行后加入什么内容 。
删除匹配行
删除匹配到preSql的行
sed -i '/preSql/d' a.t