我有一个用户名列表,如下所示:
调用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
第二次出现