我想在多个文件中的现有字符串周围添加双引号。
check_envurl!ma100mlpapl002!-p 8080!-u /apollo/info?section=ERROR!!!!!
我想在第一个“-u”之后、/之前和 ! 之前添加引号。所以它会是
check_envurl!ma100mlpapl002!-p 8080!-u "/apollo/info?section=ERROR"!!!!!
我尝试过使用 sed 替换,但不符合标准
define service {
host_name ma100mlpapl002
servicegroups Environment URL
service_description http://ma100mlpapl002:8080/apollo/info?section=ERROR
display_name http://ma100mlpapl002:8080/apollo/info?section=ERROR
check_command check_envurl!ma100mlpapl002!-p 8080!-u /apollo/info?section=ERROR!!!!!
max_check_attempts 3
check_interval 15
retry_interval 1
check_period 24x7
contact_groups siteops
sed '/pattern/a some text here' filename
最佳答案
试试这个:
$ sed 's/-u \([^!]*\)!/-u "\1"!/' <<< 'check_envurl!ma100mlpapl002!-p 8080!-u /apollo/info?section=ERROR!!!!!'
check_envurl!ma100mlpapl002!-p 8080!-u "/apollo/info?section=ERROR"!!!!!
关于linux - 在多个文件中的现有字符串周围添加引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494830/