OSX’te GNU Grep nasıl kurulur ve kullanılır?


50

Çekirdek elemanlarım var ama GNU grep'in var olup olmadığından emin değilim. Ben sadece -PGNU grep'te bulunan Perd regex bayrağını kullanmak istiyorum , ancak BSD grep'te kullanmıyorum .

PATH'im bu /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/binyüzden PATH'te ilk önce coreutils var.

Ancak, grep kullandığımda BSD: grep --versionverir grep (BSD grep) 2.5.1-FreeBSD.

Komut type -p grepdöndürür/usr/bin/grep

GNU Grep'i OSX'e nasıl kurabilirsiniz?

Yanıtlar:


72

GNU grep, coreutils'in bir parçası değildir. Yüklemek için

brew install grep

Coreutils'te olduğu gibi, bu mevcut grep'i otomatik olarak değiştirmez

==> Caveats
The command has been installed with the prefix "g".
If you do not want the prefix, install using the "with-default-names" option.

2
Bunu yaptığımda benim grephala freeBSD'dir, ancak egrepve GNU'dur fgrep. Varsayılanı grepGNU olarak nasıl ayarlayabilirim ? (Ben kullandım --with-default-names)
Juicy

3
@ juicy bunu yeni bir mermide denedin mi?
nohillside

3
Başvuru için GNU grep komutu adlandırılmıştırggrep
Will Sheppard

2
Zaten yüklüyse çalıştırın ve komut satırında GNU’ya öncelik vermek için brew uninstall grep(veya brew remove grep) komutunu çalıştırın. İle test edilmiştir Do yeni bir kabuk açmak veya çalıştırmak unutmayın ya ikili uygulamalar (yani yeni GNU grep) için yolları yeniden. brew install grep --with-default-namesgrepHomebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)hash -rexport PATH=$PATH
Jonathan Komar

3
@JonathanKomar maalesef Homebrew sürüm 2.0.0'da - with default default names bayrağı artık kullanılamıyor.
Dez

5

Yorumların gösterdiği gibi, en yüksek puan alan cevap (yokuş yukarıdan) aşağıdaki şekilde güncellenmelidir:

Grep, demleme tarafından önceden monte edilmişse, önce grep'i çıkarın.

% brew uninstall grep

Sonra grep'i kurun:

% brew install grep

All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
=º  /usr/local/Cellar/grep/3.3: 21 files, 880.7KB

PATH’ı değiştirmeniz gerektiğini unutmayın. Örneğin, .bashrc'nize ekleyin:

export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"

brew upgradeGrep artık erişilebilir olmadığında (daha önce kurulmuş brew install grep --with-default-namesve bu seçenek artık mevcut değil) , yukarıdakileri Mac'imde yapmak zorunda kaldım .

Bu çözüm, Homebrew 2.1.1'den itibaren çalışmaktadır:

brew --version
Homebrew 2.1.1
Homebrew/homebrew-core (git revision 5afdd; last commit 2019-04-22)
Homebrew/homebrew-cask (git revision a5a206; last commit 2019-04-22)

Bu cevap, Jonathan Komar ve scott m gardner'ın yorumlarıyla, en yoksul tarafın cevaplarına dayanıyor.


Bu kabul edilen cevaptan daha iyidir.
smci
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.