我有这个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回答我finnaly得到这个:
perl -p -i -e 's/^(\s+normal_check_interval\s+5)/$1\n\tcheck_period\t\t\tmy_time_period/' file
请你可以添加一些样品输入/输出的价值?它会使有用的答案更容易。 (例如,答案可能不是像正则表达式那样替换) – Sobrique
我们确实需要查看输入数据 – Borodin
我的解决方案没有直接工作是否有原因?真的不需要使用替代。 – Borodin