我有两个例子:
1
$ echo“Lorem ipsum dolor sit amet”| awk'{gsub(/ L [^ r] r /,“”);打印}“
em ipsum dolor sit amet
2。
$ echo“Loorem ipsum dolor sit amet”| awk'{gsub(/ L [^ r] r /,“”); print}'
Loorem ipsum dolor sit amet
为什么第二个例子与第一个例子的工作方式不同?
在第一个示例中,[^r]
的记录被视为单个字符?是因为删除了一个"o"
吗?
答案 0 :(得分:5)
L[^r]r
匹配L
后跟任何单字符,该字符不是r
,后跟r
,如Lor
。要匹配Loor
,您需要L[^r]+r
。 +
量词表示非r
的一个或多个字符。
$ echo "Loorem ipsum dolor sit amet" | awk '{gsub(/L[^r]+r/,""); print}'
em ipsum dolor sit amet