我在Centos上使用sed,bash。
我希望用以下文本行中的空格替换\ plain和}}之间的所有内容:
stuff here \plain \f2\fs20\cf2 4:21-23}} more stuff over here, could be anything.
\ plain和}}之间的文本会有所不同(不同的数字/数字)。如何使用通配符包含\ plain和}}之间的所有内容。
我希望一个简单的*会抓住两者之间的所有东西,但shell中的通配符似乎不像这样:
s/\\plain *}}/ /g;
答案可能是包含这个的东西? [a-zA-Z0-9。]但是没有考虑到文本中的反斜杠,冒号和破折号。
答案 0 :(得分:3)
只需在*之前添加点以匹配所有内容。
即。 s/\\plain .*}}/ /g
应该有用。
答案 1 :(得分:1)
以下正则表达式......
^\\plain .*}}$
...将匹配以\plain
开头的行,中间有任何内容,以}}
结尾。
如果没有用,而不是.*
来匹配所有内容,请使用^
(否定)来匹配所有不是}}
的内容。