在shell中查找和转义带撇号的名称



我有一个用户名列表,如下所示:

调用StoredProcedure('O'Rielly@ysol-test.net'(;

调用StoredProcedure('Mark@ysol-test.net'(;

调用StoredProcedure('James@ysol-test.net'(;

正如你所看到的,有些名字中有撇号,有些没有。

在Shell中,如果出现2次以上,我希望能够在一行中找到并转义撇号的第二次出现。

我使用SED成功地删除了所有出现的内容,但我在这里留下了空白。

如有任何帮助,我们将不胜感激。

如果出现2次以上,我希望能够找到并转义行上第二次出现的撇号。

这非常简单:

sed "/'[^']*'[^']*'/s/'/\\'/2"
  • /'[^']*'[^']*'/-如果该行将此正则表达式与三个'匹配
  • s-更换
    • '-撇号
    • \\'-用于'。请注意,我们在双引号内。因此,首先双引号将\\更改为\,然后sed将\更改为
    • 2第二次出现

相关内容

  • 没有找到相关文章

最新更新