awk模式匹配

时间:2011-05-15 22:07:30

标签: regex awk

在这样的一行

  

21zCases-Peripherals Combo LOGITECH 176-83-LODMK250 LOGITECH   WIRELESS DESKTOP MK250   920-002653920-002653ΔΙΑΘΕΣΙΜΟ1690     0,24 22,82

我正在尝试使用/176-83-LODMK250/

提取/^[0-9]\{2,3\}-[0-9]\{2,3\}-*/)print $i

但无效。

一些建议??

谢谢。

3 个答案:

答案 0 :(得分:2)

开头的^会尝试在字符串的开头找到它,而不是这种情况。表达式末尾的*也将匹配字符串的结尾。

答案 1 :(得分:1)

正如d-live所提到的,你需要删除^。 ^匹配“整个字符串的开头”(即在您的示例中为“21zCases”之前),而不是“匹配字符串的开头”。

我相信这就是你要找的东西:

/[0-9]{2,3}-[0-9]{2,3}-[^[:space:]]*/

答案 2 :(得分:0)

正则表达式下面,

  echo "21zCases-Peripherals Combo LOGITECH 176-83-LODMK250 LOGITECH WIRELESS DESKTOP MK250 920-002653 920-002653 ΔΙΑΘΕΣΙΜΟ 16,90 0,24 22,82" | grep -i "[0-9]\{2,3\}-[0-9]\{2,3\}-.*"