Saya memiliki coreutils tetapi saya tidak yakin apakah GNU grep ada di sana. Saya hanya ingin menggunakan flag -P
untuk Perl regex yang ditemukan di GNU grep, tetapi tidak di BSD grep.
PATH saya /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
jadi saya punya coreutils dulu di PATH.
Namun, grep adalah BSD ketika saya menggunakannya: grep --version
memberi grep (BSD grep) 2.5.1-FreeBSD
.
Perintah type -p grep
kembali/usr/bin/grep
Bagaimana Anda bisa menginstal GNU Grep di OSX?
grep
masih FreeBSD satu, tapiegrep
danfgrep
yang GNU. Bagaimana saya bisa mengatur defaultgrep
ke GNU? (Saya memang menggunakan--with-default-names
)ggrep
brew uninstall grep
(ataubrew remove grep
) jika sudah diinstal danbrew install grep --with-default-names
untuk memberikangrep
prioritas GNU pada baris perintah. Diuji denganHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)
Jangan lupa untuk membuka shell baru atau menjalankanhash -r
atauexport PATH=$PATH
memuat ulang path ke aplikasi biner (yaitu grep GNU baru Anda).Seperti yang ditunjukkan oleh komentar, jawaban berperingkat tertinggi (dari nohillside) perlu diperbarui sebagai berikut:
Jika grep sudah diinstal oleh brew, hapus grep terlebih dahulu.
Kemudian instal grep:
Perhatikan bahwa Anda perlu memodifikasi PATH. Misalnya, tambahkan ke .bashrc Anda:
Saya harus melakukan hal di atas pada mac saya ketika setelah
brew upgrade
grep saya tidak lagi dapat diakses (sudah diinstal sebelumnya denganbrew install grep --with-default-names
, dan opsi ini tidak tersedia lagi).Solusi ini bekerja pada Homebrew 2.1.1:
Jawaban ini didasarkan pada jawaban nohillside, dengan komentar dari Jonathan Komar dan scott m gardner.
sumber