在OSX中将动态字符串与grep匹配

时间:2014-07-22 00:34:08

标签: regex grep

我在OS X上尝试使用grep来获取在CSS文件中打印的动态创建的精灵名称的文件名。

我无法弄清楚如何匹配以下字符串: ui/sprite-sba62176be8.png

唯一改变的部分是连字符和.png

之间的字符串

1 个答案:

答案 0 :(得分:3)

使用此功能(感谢@mtm对原始正则表达式的调整):

grep -o "ui/sprite-[^.]\+\.png" yourfile

<强>解释

  • [^.]是一个否定的字符类,匹配任何不是点的字符。
  • +量词表示其前面的“一个或多个”。如果grep处于基本正则表达式模式(默认设置),则需要对其进行转义:\+
  • o标志打印 o 匹配(不是整行)。

请注意,在grep的某些实现上,您需要P标志(激活Perl模式):

grep -oP "ui/sprite-[^.]+\.png" yourfile