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 --versiongrep (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, gegrepgfgrep 중 하나를 사용할 수 있습니다. 또는 위와 같이 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의 답변을 기반으로합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다