使用sed在几个特定字符串周围添加引号

时间:2018-10-26 19:15:41

标签: bash shell sed

我很难做到这一点。我正在尝试使用 ({ playerStartDtm : { $gt : expression, $lt : expression}}) 处理文件内容,以在几个字符串周围引入引号。 你能帮忙吗?

文件内容为:

SED

并且我希望SED能够获得如下所示的文件内容,并在选定的字符串周围加上引号:

/apps/as-agent -metaspace AlertsMS -discovery tcp://localhost:7877;localhost:7789 -listen tcp://localhost:7787 -input mySpace.txt

2 个答案:

答案 0 :(得分:3)

这个awk单行代码做到了:

{{1}}

答案 1 :(得分:2)

尝试一下:

sed "s/ \([^- ][^ ]*\)/ '\1'/g" file

说明:

  • 匹配一个空格
  • [^- ]匹配除破折号和空格之外的任何字符
  • [^ ]*匹配零个或多个非空格字符
  • \(\)将使用输入匹配的正则表达式部分填充捕获组1,因此我们可以在替换字符串中将其用作\1