OSX에서 GNU Grep을 설치하고 사용하는 방법


50

coreutils가 있지만 GNU grep이 있는지 확실하지 않습니다. -PGNU grep에는 있지만 BSD grep에는없는 Perl 정규식에 플래그를 사용하고 싶습니다 .

내 PATH는 PATH /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에서 coreutils를 먼저 가지고 있습니다.

그러나 grep은 내가 사용할 때 BSD입니다 : grep --versiongives grep (BSD grep) 2.5.1-FreeBSD.

명령 type -p grep반환/usr/bin/grep

OSX에 GNU Grep을 어떻게 설치할 수 있습니까?

답변:


72

GNU grep은 coreutils의 일부가 아닙니다. 설치하려면

brew install grep

coreutils와 마찬가지로 기존 grep을 자동으로 대체하지 않습니다

==> 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
나는이 작업을 수행 할 때 내 grep여전히 FreeBSD의 하나이지만, egrep그리고 fgrepGNU이다. 기본값 grep을 GNU로 설정하려면 어떻게 해야합니까? (나는 사용했다 --with-default-names)
Juicy

3
@ juicy 새로운 쉘에서 이것을 시도 했습니까?
nohillside

3
참고로 GNU grep 명령의 이름은ggrep
Will Sheppard

2
실행 brew uninstall grep(또는 brew remove grep이미 설치된 경우)와 brew install grep --with-default-namesGNU를 제공하기 위해 grep명령 행에 우선 순위를. 테스트 Homebrew 1.5.4 Homebrew/homebrew-core (git revision 3bb326; last commit 2018-02-22)할 일 새로운 쉘을 열거 나 실행하는 것을 잊지 hash -r또는 export PATH=$PATH바이너리 애플리케이션 (예 : 새로운 GNU의 GREP)의 경로를 다시로드 할 수 있습니다.
Jonathan Komar

3
불행히도 Homebrew 버전 2.0.0에서 @JonathanKomar --with-default-names 플래그는 더 이상 사용할 수 없습니다.
Dez

5

의견에서 알 수 있듯이 nohillside에서 가장 높은 등급의 답변은 다음과 같이 업데이트해야합니다.

추출기로 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 upgradegrep에 더 이상 액세스 할 수없는 경우 (위에서 이전에 설치되었으며이 옵션을 더 이상 사용할 수없는 경우) Mac에서 위의 작업을 수행해야 했습니다 brew install grep --with-default-names.

이 솔루션은 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의 답변을 기반으로합니다.


이것은 받아 들인 대답보다 낫습니다.
smci
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.