Mam coreutils, ale nie jestem pewien, czy GNU grep tam jest. Chcę tylko użyć flagi -P
dla wyrażenia regularnego Perla, która znajduje się w GNU grep, ale nie w BSD grep.
Moja ŚCIEŻKA jest /usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/masi/.cabal/bin
taka, że najpierw mam ŚCIEŻKI.
Jednak grep jest BSD, kiedy go używam: grep --version
daje grep (BSD grep) 2.5.1-FreeBSD
.
Polecenie type -p grep
zwraca/usr/bin/grep
Jak zainstalować GNU Grep w OSX?
grep
jest jeszcze jeden FreeBSD, aleegrep
ifgrep
są GNU. Jak mogę ustawić wartość domyślnągrep
na GNU? (Użyłem--with-default-names
)ggrep
brew uninstall grep
(lubbrew remove grep
), jeśli jest już zainstalowany ibrew install grep --with-default-names
daćgrep
pierwszeństwo GNU w wierszu poleceń. Testowane zHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
Nie zapomnij otworzyć nowej powłoki lub uruchomićhash -r
lubexport PATH=$PATH
ponownie załadować ścieżki do aplikacji binarnych (tj. Nowego GNU grep).Jak wskazują komentarze, najwyżej oceniana odpowiedź (z Nohillside) wymaga aktualizacji w następujący sposób:
Jeśli grep został już zainstalowany przez brew, najpierw usuń grep.
Następnie zainstaluj grep:
Pamiętaj, że musisz zmodyfikować ŚCIEŻKĘ. Na przykład dodaj do swojego .bashrc:
Musiałem zrobić powyższe na moim komputerze Mac, gdy po
brew upgrade
moim grep nie był już dostępny (był wcześniej zainstalowany zbrew install grep --with-default-names
, a ta opcja nie jest już dostępna).To rozwiązanie działa od wersji Homebrew 2.1.1:
Ta odpowiedź oparta jest na odpowiedzi z nohillside, z komentarzami Jonathana Komara i Scotta Gardnera.
źródło