cat input2.txt
输出:
'enable_lb': True,
'enable_firewall': True,
'enable_vpn': True,
我试过
sed "s/^*.enable_firewall.*/ 'enable_firewall': False,/" input2.txt
它没有将防火墙的值更改为false,请以此语法帮助我
先谢谢
答案 0 :(得分:0)
您需要将.
放在*
之前,以便它可以匹配任何char零次或更多次。
sed "s/^.*enable_firewall.*/ 'enable_firewall': False,/" input2.txt
要进行就地编辑,请添加-i
参数。
sed -i "s/^.*enable_firewall.*/ 'enable_firewall': False,/" input2.txt
答案 1 :(得分:0)
更确切地说:
sed "s/\('enable_firewall': \)True/\1False/g" file
这与'enable_firewall': True
或者:
sed "s/\('enable_firewall':.*\)True/\1False/g" file
匹配enable_firewall':*True
*表示任何
或者:
sed "s/\('enable_firewall':[ \t]*\)True/\1False/g" file1
这与'enable_firewall': True
和:
之间的零个或多个空格或标签True
相匹配。如果必须至少有一个空格,请使用[ \t]\+
代替[ \t]*
注意:使用sed -i ...
替换文件