coreutils가 있지만 GNU grep이 있는지 확실하지 않습니다. GNU grep에는 있지만 BSD grep에는없는 Perl 정규식에 -P
플래그를 사용하고 싶습니다.
내 경로는 /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
이므로 먼저 PATH에 coreutils가 있습니다.
하지만 grep은 내가 사용할 때 BSD입니다. grep --version
는 grep (BSD grep) 2.5.1-FreeBSD
를 제공합니다.
명령 type -p grep
가 /usr/bin/grep
를 반환합니다.
macOS에서 GNU Grep을 어떻게 설치할 수 있습니까?
답변
GNU grep은 coreutils의 일부가 아닙니다. 설치하려면
brew install grep
coreutils와 마찬가지로 기존 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"
설치 후 ggrep
, gegrep
및 gfgrep
중 하나를 사용할 수 있습니다. 또는 위와 같이 PATH
를 확장하여 grep
등을 사용합니다. 두 번째 옵션은 옵션이 다른 경우에도 일부 macOS 특정 스크립트를 혼동 할 수 있습니다.
답변
nohillside의 답변은 다음과 같이 업데이트해야합니다.
brew가 grep을 이미 설치 한 경우 , 먼저 grep을 제거하십시오.
% brew uninstall grep
그런 다음 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
PATH를 수정해야합니다. 예를 들어 .bashrc에 추가합니다.
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
brew upgrade
내 grep에 더 이상 액세스 할 수 없습니다 (이전에 ,이 옵션은 더 이상 사용할 수 없습니다.
이 솔루션은 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)
이 답변은 Jonathan Komar와 scott m gardner의 의견과 함께 nohillside의 답변을 기반으로합니다.