Ik heb coreutils maar ik weet niet zeker of GNU grep aanwezig is. Ik wil alleen de vlag -P
gebruiken voor Perl-regex die in GNU grep wordt gevonden, maar niet in BSD grep.
Mijn PAD is /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
, dus ik heb coreutils eerst in het PAD.
Grep is echter BSD als ik het gebruik: grep --version
geeft grep (BSD grep) 2.5.1-FreeBSD
.
Commando type -p grep
retourneert /usr/bin/grep
Hoe kun je GNU Grep in macOS installeren?
Answer
GNU grep is geen onderdeel van coreutils. Om te installeren, voer je uit
brew install grep
Net als bij coreutils, vervangt dit “niet automatisch de bestaande grep
==> Caveats 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"
Dus na het installeren kun je ofwel ggrep
, gegrep
en gfgrep
gebruiken ; of breid PATH
uit zoals hierboven weergegeven om grep
etc. te gebruiken. De tweede optie kan sommige macOS-specifieke scripts verwarren, hoewel de opties verschillen.
Answer
Het antwoord van nohillside moet als volgt worden bijgewerkt:
Als grep al was geïnstalleerd door brew , verwijder eerst grep.
% brew uninstall grep
Installeer vervolgens grep:
% 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
Merk op dat u moeten het PATH wijzigen. Voeg bijvoorbeeld aan uw .bashrc toe:
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Ik moest het bovenstaande op mijn Mac doen toen ik na brew upgrade
mijn grep was niet langer toegankelijk (het was eerder geïnstalleerd met brew install grep --with-default-names
, en deze optie is niet meer beschikbaar).
Deze oplossing werkt vanaf Homebrew 2.1.1:
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)
Dit antwoord is gebaseerd op het antwoord van nohillside, met opmerkingen van Jonathan Komar en scott m gardner.