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
请建议..
答案 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的更高版本,它似乎已经修复了。