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