0
在OSX上执行grep时,我的结果不正确。我正在使用-aob查找具有多个匹配的子字符串的偏移量。 'a'表示我正在使用字符串,'o'只显示结果,'b'表示字节偏移量。BSD grep返回不正确的结果
echo "ABDABCABC" | grep -aob "ABC"
随着输出:
0:ABC
ABC
的时候,其实输出应该是:
3:ABC
6:ABC
默认OSX使用BSD grep的,这似乎有这个问题。我正在使用El Capitan,但其他早期版本的Mac用户体验相同。我试过通过自制软件安装GNU grep。我似乎无法将它用于grep,但grep -V返回它使用BSD。 MacPorts现在有一些问题,所以我不能用它来安装。
我也更新庆典到最新版本,所以我相当肯定,这不是我的烦恼之源。
在使用Perl替代品的grep另一个值得注意的是不是一种选择,这是一个家庭作业和的条件之一是不使用Perl。
有没有人有解决方案?要么解决BSD问题,要么使用已安装的自制软件GNU grep。 干杯。
感谢您的回复。 ggrep返回“未找到命令”。我尝试过的其中一个选项是:http://www.heystephenwood.com/2013/09/install-gnu-grep-on-mac-osx.html。他对新安装的grep进行了符号链接,但在/ usr/bin/ggrep中的'操作不被允许'。我尝试链接到/ usr/local/bin/ggrep,但“找不到命令”仍然存在。 – Holderdash
是的,符号链接到'/ usr/local/bin/ggrep'。当我添加别名“alias grep =”ggrep“'并执行'grep --version'时,我得到'-bash:ggrep:command not found' – Holderdash
它在路径中,但不在第一个位置'/ usr/local/sbin中:在/ usr/local/bin中:/ usr/sbin目录:在/ usr/bin中:/ sbin' – Holderdash