logo

Comando Grep in Linux/Unix con esempi

Il comando 'grep' sta per 'stampa espressione regolare globale' . Il comando grep filtra il contenuto di un file semplificando la nostra ricerca.

Si tratta di un'utilità da riga di comando per cercare nei gruppi di dati di testo semplice righe identiche a un'espressione regolare. Il nome 'presa' deriva dal comando, cioè ed, che contiene lo stesso effetto. Originariamente, grep è stato progettato per il sistema operativo Unix, ma è diventato disponibile in seguito per tutti i sistemi simili a Unix e per alcuni altri come OS 9.

Java lancia un'eccezione

Il filtro grep trova un file per un modello di carattere specifico e mostra ogni riga che include quel modello. I caratteri dovrebbero essere racchiusi tra virgolette se compaiono nel parametro pattern con un significato speciale per la shell. Di solito, dobbiamo racchiudere l'intero pattern tra virgolette se il parametro pattern non è una stringa comune.

In un'espressione come [a-z], il segno meno (-) cml descrive un intervallo basato sull'ordine di raccolta corrente. Un ordine di raccolta può specificare classi equivalenti negli intervalli di caratteri da utilizzare. Il comando grep presuppone stdin quando non viene menzionato alcun file.

Il modello è chiamato espressione regolare che si trova all'interno del file. Il modello è limitato alle espressioni regolari nel formato del comando egrep o ed. Il comando grep applica un solido algoritmo non deterministico. È utile quando dobbiamo filtrare file di registro di grandi dimensioni.

Breve storia del grep

Prima di essere intitolato, grep era un'utilità riservata specificata da Ken Thompson per trovare file per diversi modelli. Sconosciuto della sua esistenza, Doug Mcllroy ha chiesto a Thompson di specificare tale funzione. Rispondendo che da un giorno all'altro avrebbe pensato a una simile utilità. Thompson ha apportato miglioramenti e corretto le paludi per circa un'ora nel suo programma noto come 'S' (o cerca). Il giorno successivo ha presentato la funzione a Mcllroy, che ha detto che era proprio come voleva. Il racconto di Thompson potrebbe descrivere la convinzione che il comando grep sia stato specificato dall'oggi al domani.

Thompson ha specificato la versione iniziale in linguaggio assembly PDP-11 da supportare Lee E. McMohan controllare il testo dei Federalist Papers per decidere la paternità del singolo articolo. L'editor di testo ed supportava le espressioni regolari ma non poteva essere utilizzato su testi così grandi; Thompson ha copiato quel codice in uno strumento autonomo. Ha selezionato il nome dovuto a ed; il comando grep stamperebbe ogni riga come nel modello descritto. Innanzitutto, grep è stato aggiunto nella versione 4 di Unix, dicendo questo 'è generalmente citato come il prototipo dello strumento software' , Mcllroy ha approvato grep con il file 'irrevocabilmente radicato' filosofia degli strumenti di Thompson in Unix.

Implementazioni di grep

Una gamma di implementazioni grep è presente in diversi ambienti di sviluppo software e sistemi operativi. Le prime versioni includevano fgrep ed egrep, introdotte nella versione 7 di Unix. La versione egrep supporta la sintassi per un'espressione regolare estesa inclusa da Alfred Aho dopo l'implementazione originale dell'espressione regolare di Ken Thompson. La versione fgrep trova qualsiasi elenco di stringhe fisse con l'estensione Algoritmo di corrispondenza delle stringhe Aho-Corasick . Questi binari di versione sono disponibili nei sistemi moderni, connettendosi a grep o chiamando grep uno script di shell utilizzando il flag corretto aggiunto mentre generalmente vengono distribuiti sui sistemi POSIX.

Altri comandi includono il 'presa' parola per rappresentare stanno trovando strumenti, comunemente quelli che dipendono dalle corrispondenze delle espressioni regolari. Ad esempio, l'utilità, cioè 'pgrep' , mostra i processi i cui titoli sono gli stessi dell'espressione regolare fornita.

  • Grep è il titolo della funzione integrata che cerca gli elementi all'interno di un elenco che coinvolgono una determinata proprietà nel file Perl linguaggio di programmazione.
  • In genere, viene chiamata questa funzione di ordine superiore 'filtro' O 'Dove' in un'altra lingua.
  • Il comando, cioè pcregrep , è un'implementazione grep che utilizza la sintassi per l'espressione regolare Perl. La stessa funzionalità può essere aggiunta alla versione grep GNU utilizzando il flag -P.
  • Inoltre, le porte grep (ad esempio, in GnuWin32 E Cygwin ) eseguire su Microsoft Windows. Alcune versioni di Windows forniscono lo stesso comando findstr o qgrep.
  • Inoltre, il comando grep fa parte degli strumenti ASCII di MSX-DOS2 per la versione 2 di MSX-DOS.
  • I comandi fgrep, egrep e grep sono stati forniti al sistema operativo IBM i.
    Il software Adobe InDesign dispone di funzioni GREP (a partire dall'edizione CS3) nella finestra di dialogo della scheda Modifica/Trova 'GREP' e specificate utilizzando CS4 nel 'Stili GREP' stili di paragrafo.

Come installare grep in Linux?

Grep è preinstallato in quasi tutte le distribuzioni di Linux. Tuttavia, nel caso, possiamo installarlo con il comando seguente nella finestra del terminale se manca dal nostro sistema:

 $ sudo apt-get install grep 

grep con la pipa

Java per i tipi di loop

Il comando 'grep' viene generalmente utilizzato con pipe (|) .

Sintassi:

 command | grep 

Esempio:

 cat marks.txt | grep 9 

Filtri Grep Linux1

Guarda l'istantanea sopra, il comando grep filtra tutti i dati contenenti '9'.

grep senza pipe

Può essere utilizzato anche senza tubo.

Sintassi:

zeri np
 grep 

Esempio:

 grep 9 marks.txt 

Filtri Grep Linux2

Guarda l'istantanea sopra, il comando grep fa lo stesso lavoro dell'esempio precedente ma senza pipe.

opzioni grep

    grep-vM: Il comando 'grep -v' visualizza le righe che non corrispondono alla parola specificata.

    Sintassi:

    aprire il menu delle impostazioni
     grep -v 

    Esempio:

     grep -v 9 marks.txt 

    Filtri Grep Linux3

    Guarda l'istantanea sopra, comando 'grep -v 9marks.txt' visualizza le righe che non contengono la parola di ricerca '9'.

    grep -i: Il comando 'grep -i' filtra l'output senza distinzione tra maiuscole e minuscole.

    Sintassi:

     grep -i 

    Esempio:

     grep -i red exm.txt 

    Filtri Grep Linux4

    Guarda l'istantanea sopra, comando 'grep -i red exm.txt' visualizza tutte le righe contenenti 'rosso' sia in maiuscolo che in minuscolo.

    grep -A/ grep -B/ grep -C

    grep -A viene utilizzato il comando per visualizzare il file riga dopo il risultato .

    Il comando grep -B viene utilizzato per visualizzare il file riga prima del risultato .

    Il comando grep -C viene utilizzato per visualizzare il file riga dopo e riga prima il risultato.

    È possibile utilizzare (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) per visualizzare un numero qualsiasi di righe.

    Sintassi:

    algoritmo di Kruskal
     grep -A grep -B grep -C 

    Esempio:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Filtri Grep Linux5

    Guarda l'istantanea sopra, comando 'grep -A1 giallo exm.txt' visualizza la riga cercata con la riga successiva, comando 'grep -B1 giallo exm.txt' visualizza la riga cercata preceduta da una riga e da un comando 'grep -C1 giallo exm.txt' visualizza la riga cercata con una riga precedente e una successiva.