【发布时间】:2016-03-08 14:44:57
【问题描述】:
我有这个 perl 命令来追加一个新行并且可以工作,但是,它可以改进吗?
perl -p -i -e 's/^*.*normal_check_interval*.*5*.*$/\tnormal_check_interval\t\t5\n\tcheck_period\t\t\tmy_time_period/' file.cfg
例如,我认为我可以使用类似的东西:
perl -p -i -e 's/^*.*normal_check_interval*.*5*.*$/\t$1\n\tcheck_period\t\t\tmy_time_period/' file.cfg
但我不确定语法
提前致谢
编辑: @Sobrique 建议
用于一次编辑多个 nagios cfg 文件。
例子:
之前:
service{
...
normal_check_interval 5
...
}
之后:
service{
...
normal_check_interval 5
check_period my_time_period
...
}
编辑 2:
根据@Borodin 的回答,我终于明白了:
perl -p -i -e 's/^(\s+normal_check_interval\s+5)/$1\n\tcheck_period\t\t\tmy_time_period/' file
【问题讨论】:
-
请您添加一些示例输入/输出?它将使有用的答案更容易。 (例如,答案可能不是这样的正则表达式模式替换)
-
我们确实需要查看输入数据
-
我的解决方案不能直接工作是有原因的吗?真的没有必要使用替代品。
-
@Borodin 您的解决方案运行顺利 ;)