Como fazer o 'grep' funcionar como no Ubuntu?


24

Tentei usar greppara corresponder a um padrão no terminal, mas nenhum resultado saiu.

$ grep -R 'networks'
grep: warning: recursive search of stdin

Eu sabia que grepno macOS é baseado no BSD, enquanto grepno Ubuntu é baseado no GNU.

Como fazer o 'grep' funcionar no macOS como no Ubuntu?

Respostas:


33

Quando a -Ropção é usada, o MacOS grepexige que você forneça explicitamente um diretório para pesquisar; por exemplo, especifique .para pesquisar recursivamente o diretório atual:

grep -R 'networks' .

9

A longo prazo, provavelmente é melhor instalar as ferramentas baseadas no GNU ou executar o Ubuntu virtualmente. Ambos estão disponíveis gratuitamente.

brew install coreutils(para executar o brewcomando, você precisa instalar o homebrew em https://brew.sh ) colocará as versões GNU das ferramentas em seu caminho. Procure o ggrepcomando e, possivelmente, um greppacote independente para instalar, pois o coreutils tende a mudar com o tempo o que inclui.

(EDIT: observe que, a partir de 2018 , grepprecisa especificamente ser instalado separadamente, dacoreutils seguinte maneira:

$ brew install grep
$ ggrep sometext file.txt     # Note the executable is called ggrep with two G's

e possui um nome executável exclusivo ggrepcom dois Gs.)

Também procurar aqui por GNU ou coreutils será útil para contexto e dicas / truques.


2
Observe que pelo menos agora grepnão está incluído no coreutilspacote, brewmas em seu próprio pacote chamadogrep
fejese 17/17/17

2
Observe também que o executável é chamado ggrep(g inicial) agora.
dotancohen 5/09/18

11
Obrigado @dotancohen - fique à vontade para editar uma resposta se tiver certeza da situação. Há um histórico de revisões e sempre podemos conversar se uma alteração não for clara para uma pessoa ou se precisar de mais revisões / ajustes. +1 pelo comentário - obrigado mais uma vez
bmike
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.