Come far funzionare 'grep' come in Ubuntu?


24

Ho provato a usare grepper abbinare un modello sul terminale, ma nessun risultato viene fuori.

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

Sapevo che grepsu macOS si basava su BSD mentre grepsu Ubuntu si basava su GNU.

Come far funzionare 'grep' su macOS come in Ubuntu?

Risposte:


33

Quando -Rviene utilizzata l' opzione, MacOS greprichiede di assegnargli esplicitamente una directory per la ricerca; ad esempio, specificare .di cercare ricorsivamente nella directory corrente:

grep -R 'networks' .

9

A lungo termine, probabilmente è meglio installare gli strumenti basati su GNU o eseguire Ubuntu praticamente. Entrambi sono disponibili gratuitamente.

brew install coreutils(per eseguire il brewcomando è necessario installare homebrew da https://brew.sh ) metterai le versioni GNU degli strumenti nel tuo percorso. Cerca il ggrepcomando e possibilmente un greppacchetto autonomo da installare poiché coreutils tende a cambiare nel tempo ciò che include.

(EDIT: si noti che a partire dal 2018 , in grepparticolare deve essere installato separatamentecoreutils come segue:

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

e ha un nome eseguibile univoco ggrepcon due G).

Anche la ricerca qui di GNU o coreutils sarà utile per contesto e suggerimenti / trucchi.


2
Si noti che almeno ora grepnon è incluso nel coreutilspacchetto brewma nel suo pacchetto chiamatogrep
fejese

2
Si noti inoltre che l'eseguibile si chiama ora ggrep(g iniziale).
dotancohen,

1
Grazie @dotancohen - non esitare a modificare una risposta se sei sicuro della situazione. Esiste una cronologia delle revisioni e possiamo sempre chattare se una modifica non è chiara per una persona o necessita di ulteriori revisioni / modifiche. +1 per il commento - grazie ancora
bmike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.