Awk - 正则表达式

时间:2012-12-12 13:10:03

标签: awk

我有两个例子:

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"吗?

1 个答案:

答案 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