【发布时间】:2010-12-16 17:24:07
【问题描述】:
给定输入
echo abc123def | grep -o '[0-9]*'
在一台计算机上(使用 GNU grep 2.5.4)返回123,而在另一台计算机上(使用 GNU grep 2.5.1)返回空字符串。是否有一些解释为什么 grep 2.5.1 在这里失败,或者它只是一个错误?我以这种方式在我希望能够在不同计算机上运行的 bash 脚本中使用grep -o(可能有不同版本的 grep)。是否有“正确的方法”来获得一致的行为?
【问题讨论】:
-
你为什么要在一个可以匹配零个字符的正则表达式上使用 grep 呢?我希望它匹配每一行,而不仅仅是其中包含数字的行。