Grep --byte-offset不返回偏移量(Grep版本2.5.1)

时间:2013-09-14 14:19:02

标签: bash grep offset

Grep --byte-offset没有返回偏移量(Grep版本2.5.1) 嗨, 我试图使用

获取重复字符串的位置

代码:

grep -b -o "pattern"

在我的服务器中,我使用的是GNU grep版本2.14,代码运行正常。但是,当我在使用GNU grep版本2.5.1的不同服务器中部署相同的代码时,代码无法正常工作。即使字节偏移选项在那里可用。任何想法如何解决它。

示例:

代码:

export string="abc cat mat rat cat bat cat fat rat tat tat cat"
echo $string|grep -b -o "cat"

预期输出(并在grep 2.14中受支持):

4:cat
16:cat
24:cat
44:cat

但是与grep版本2.5.1相同的代码提供了以下输出:

0:cat
cat
cat
cat

请建议..

1 个答案:

答案 0 :(得分:4)

这是grep中的一个错误,因为其Changelog中的一些注释引用了它:

    * src/grep.c (nlscan): Make this function more robust by removing
      the undocumented assumption that its "lim" argument points
      right after a line boundary.  This will be used later to fix
      --byte-offset's broken behavior.  Patch #3769.

使用至少2.5.3的更高版本,它似乎已经修复了。