在Riak app.config
文件中有一个如下所示的部分:
%% JMX Config
{riak_jmx, [
{enabled, false}
]},
我想替换它:
%% JMX Config
{riak_jmx, [
{enabled, true}
]},
是的,非常简单,但我希望能够做到这一点多年,多行文字替换。我想使用AWK或Sed来执行操作。
(值得一提的是我在OSX上,因此我没有这些程序的花哨GNU版本。)
我得到的最接近的是以下,这些都没有真正正常工作......
sed '/{riak_jmx/,/]},/{ c\
\{riak_jmx, [\
\{enabled, false\}
; }' ./app.config
和
awk '/{riak_jmx/,/]},/{ if($0 ~ "{enabled, false}") {
print "{enabled, true}" }
else {
print $0
} }1' < ./app.config
哪个也不起作用。这两个命令都会打印旧版本和新版本的块。
有什么想法吗?
答案 0 :(得分:3)
尝试使用sed的s
命令:
sed '/{riak_jmx/,/]},/{ s/enabled, false/enabled, true/;}' ./app.config
答案 1 :(得分:2)
使用awk
即可:
awk '/riak_jmx/,/]/ {sub(/false/,"true")}1' app.config
%% JMX Config
{riak_jmx, [
{enabled, true}
]},
答案 2 :(得分:1)
awk '/{riak_jmx, \[/ {print; getline; if($0 ~ /{enabled, false}/) sub(/false/,"true")}{print}' app.config
输出:
%% JMX Config
{riak_jmx, [
{enabled, true}
]}