Name

grep, egrep, fgrep – print lines matching a pattern

Synopsis

grep PATTERN
grep

Description

grep cerca nei FILE di input nominati (o nello standard input se nessun file è nominato, o se un singolo trattino-meno (-) è dato come nome del file) per le linee che contengono una corrispondenza con il PATTERN dato. Per impostazione predefinita, grep stampa le righe corrispondenti.

Inoltre, sono disponibili due programmi varianti egrep e fgrep. egrep è uguale a grep -E. fgrep è uguale agrep -F. L’invocazione diretta come egrep o fgrep è deprecata, ma è fornita per permettere alle applicazioni storiche che si basano su di esse di funzionare senza modifiche.

Opzioni

Informazioni generali sul programma

–help

Stampa un messaggio d’uso che riassume brevemente queste opzioni della linea di comando e l’indirizzo di segnalazione dei bug, poi esce.

-V, –versione Stampa il numero di versione di grep sullo standard output stream. Questo numero di versione dovrebbe essere incluso in tutte le segnalazioni di bug (vedi sotto).

Selezione delatcher

-E, –extended-regexp Interpreta PATTERN come un’espressione regolare estesa (ERE, vedi sotto). (-E è specificato da POSIX .) -F, –fixed-strings Interpreta PATTERN come una lista di stringhe fisse, separate da newline, ognuna delle quali deve essere abbinata. (-F è specificato da POSIX.) -G, –basic-regexp Interpreta PATTERN come un’espressione regolare di base (BRE, vedi sotto). Questo è il default. -P, –perl-regexp Interpreta PATTERN come un’espressione regolare Perl. Questo è altamente sperimentale e grep -P potrebbe avvertire di funzioni non implementate.

Controllo della corrispondenza

-e PATTERN, –regexp=PATTERN Usa PATTERN come pattern. Questo può essere usato per specificare schemi di ricerca multipli, o per proteggere uno schema che inizia con un trattino (-).(-e è specificato da POSIX .) -f FILE, –file=FILE Ottiene schemi da FILE, uno per riga. Il file vuoto contiene zero pattern e quindi non corrisponde a nulla. (-f è specificato da POSIX .) -i, –ignore-case Ignora le distinzioni di caso sia nel PATTERN che nei file di input. (-i è specificato da POSIX .) -v, –invert-match Inverte il senso della corrispondenza, per selezionare le linee che non corrispondono. (-v è specificato da POSIX .) -w, –word-regexp Seleziona solo le righe che contengono corrispondenze che formano parole intere. Il test è che la sottostringa corrispondente deve essere o all’inizio della riga, o preceduta da un carattere costituente non parola. Allo stesso modo, deve essere o alla fine della riga o seguita da un carattere costituente non parola.i caratteri costituenti parola sono lettere, cifre, e il trattino basso. -x, –line-regexp Seleziona solo le corrispondenze che corrispondono esattamente all’intera riga. (-x è specificato da POSIX .) -y

Sinonimo obsoleto di -i.

Controllo generale dell’output

-c, –count Sopprime l’output normale; stampa invece un conteggio delle linee corrispondenti per ogni file di input. Con l’opzione -v, –invert-match (vedi sotto), conta le linee che non corrispondono. (-c è specificato da POSIX .) –color, –colour Circonda le stringhe corrispondenti (non vuote), le linee corrispondenti, le linee di contesto, i nomi dei file, i numeri di linea, gli offset di byte e i separatori (per campi e gruppi di linee di contesto) con sequenze di escape per visualizzarle a colori sul terminale. I colori sono definiti dalla variabile d’ambiente GREP_COLORS. L’obsoleta variabile d’ambiente GREP_COLOR è ancora supportata, ma la sua impostazione non ha priorità. WHEN è never, always, orauto. -L, –files-without-match Sopprime l’output normale; invece stampa il nome di ogni file di input da cui normalmente non sarebbe stato stampato alcun output. La scansione si fermerà al primo riscontro. -l, –files-with-matches Sopprime l’output normale; invece stampa il nome di ogni file di input da cui l’output sarebbe stato normalmente stampato. La scansione si fermerà alla prima corrispondenza. (-l è specificato da POSIX .) -m NUM, –max-count=NUM Smette di leggere un file dopo NUM linee corrispondenti. Se l’input è lo standard input di un file regolare, e vengono emesse NUM linee corrispondenti, grep assicura che lo standard input sia posizionato subito dopo l’ultima linea corrispondente prima di uscire, indipendentemente dalla presenza di linee di contesto finali. Questo permette ad un processo chiamante di riprendere la ricerca. Quando grep si ferma dopo NUM linee corrispondenti, emette qualsiasi linea di contesto in uscita. Quando viene usata anche l’opzione -c o –count, grep non emette un conteggio maggiore di NUM. Quando viene usata anche l’opzione -v o –invert-match, grep si ferma dopo aver emesso NUM linee non corrispondenti. -o, –only-matching Stampa solo le parti corrispondenti (non vuote) di una riga corrispondente, con ciascuna di queste parti su una riga di output separata. -q, –quiet, –silent Quiet; non scrive nulla sullo standard output. Esce immediatamente con lo stato zero se viene trovata una corrispondenza, anche se viene rilevato un errore. Vedi anche l’opzione-s o –no-messages. (-q è specificato da POSIX .) -s, –no-messages Sopprime i messaggi di errore su file inesistenti o illeggibili. Nota sulla portabilità: diversamente da GNU grep, 7th Edition Unix grep non era conforme a POSIX, perché mancava di -q e la sua opzione -s si comportava come l’opzione -q di GNU grep.USG -style grep mancava anche di -q ma la sua opzione -s si comportava come GNU grep. Gli script di shell portatili dovrebbero evitare sia -q che -s e dovrebbero invece reindirizzare l’output standard e di errore a /dev/null. (-s è specificato da POSIX)

Controllo prefisso delle linee di output

-b, –byte-offset Stampa l’offset di byte basato su 0 all’interno del file di input prima di ogni linea di output. Se è specificato -o (–only-matching), stampa l’offset della parte di corrispondenza stessa. -H, –with-filename Stampa il nome del file per ogni corrispondenza. Questo è il default quando c’è più di un file da cercare. -h, –no-filename Sopprime il prefisso dei nomi dei file in uscita. Questo è il valore predefinito quando c’è solo un file (o solo lo standard input) da cercare. –label=LABEL Visualizza l’input effettivamente proveniente dallo standard input come input proveniente dal file LABEL. Questo è particolarmente utile quando si implementano strumenti comezgrep, ad esempio, gzip -cd foo.gz | grep –label=foo -H qualcosa. Vedi anche l’opzione -H. -n, –line-number Prefissa ogni linea di output con il numero di linea basato su 1 all’interno del suo file di input. (-n è specificato da POSIX .) -T, –initial-tab Fa in modo che il primo carattere del contenuto della linea attuale si trovi su un arresto di tabulazione, in modo che l’allineamento delle tabulazioni risulti normale. Questo è utile con le opzioni che fissano il loro output al contenuto effettivo: -H,-n, e -b. Per migliorare la probabilità che le linee di un singolo file inizino tutte nella stessa colonna, questo fa anche sì che il numero di linea e l’offset in byte (se presente) siano stampati in un campo di larghezza minima. -u, –unix-byte-offsets Riporta gli offset di byte in stile Unix. Questo interruttore fa sì che grep riporti gli offset di byte come se il file fosse un file di testo in stile Unix, cioè con i caratteri CR rimossi. Questo produrrà risultati identici all’esecuzione di grep su una macchina Unix. Questa opzione non ha effetto a meno che non venga usata anche l’opzione -b; non ha effetto su piattaforme diverse da MS-DOS e MS -Windows. -Z, –null Emette un byte zero (il carattere ASCII NUL) al posto del carattere che normalmente segue un nome di file. Per esempio, grep -lZ emette un byte zero dopo ogni nome di file invece del solito newline. Questa opzione rende l’output non ambiguo, anche in presenza di nomi di file contenenti caratteri insoliti come i newline. Questa opzione può essere usata con comandi come find -print0, perl -0, sort -z, e xargs -0 per elaborare nomi di file arbitrari, anche quelli che contengono caratteri newline.

Context Line Control

-A NUM, –after-context=NUM Stampa NUM linee di contesto dopo le linee corrispondenti. Mette una linea contenente un separatore di gruppo (–) tra gruppi contigui di corrispondenze. Con l’opzione -o o –only-matching, questo non ha effetto e viene dato un avviso. -B NUM, –before-context=NUM Stampa NUM righe di contesto principale prima delle righe corrispondenti. Mette una linea contenente un separatore di gruppo (–) tra gruppi contigui di corrispondenze. Con l’opzione -o o –only-matching, questo non ha effetto e viene dato un avviso. -C NUM, -NUM, –context=NUM Stampa NUM righe di contesto di output. Mette una linea contenente un separatore di gruppo (–) tra gruppi contigui di corrispondenze. Con l’opzione -o o -only-matching, questo non ha effetto e viene dato un avvertimento.

Selezione di file e directory

-a, –text Elabora un file binario come se fosse testo; questo è equivalente all’opzione –binary-files=text. –binary-files=TYPE Se i primi byte di un file indicano che il file contiene dati binari, assume che il file sia di tipo TYPE. Per default, TYPE è binario, e grep normalmente produce un messaggio di una riga che dice che un file binario corrisponde, o nessun messaggio se non c’è corrispondenza. Se TYPE è without-match, grep assume che un file binario non corrisponda; questo è equivalente all’opzione -I. Se TYPE è text, grep processa un file binario come se fosse testo; questo è equivalente all’opzione -a. Attenzione: grep –binary-files=text potrebbe emettere spazzatura binaria, che può avere brutti effetti collaterali se l’output è un terminale e se il driver del terminale interpreta alcuni di essi come comandi. -D ACTION, –devices=ACTION Se un file di input è un dispositivo, FIFO o socket, usa ACTION per processarlo. Per impostazione predefinita, ACTION è read, il che significa che i dispositivi vengono letti come se fossero file ordinari. Se ACTION è skip, i dispositivi vengono silenziosamente saltati. -d ACTION, –directories=ACTION Se un file di input è una directory, usa ACTION per processarlo. Per impostazione predefinita, ACTION è read, il che significa che le directory vengono lette proprio come se fossero normali file. Se ACTION è skip, le directory vengono silenziosamente saltate. Se ACTION è recurse, grep legge tutti i file sotto ogni directory, ricorsivamente; questo è equivalente all’opzione -r. –exclude=GLOB Salta i file il cui nome base corrisponde a GLOB (usando i caratteri jolly). Un nome di file glob può usare *, ?, e come caratteri jolly, e \ per citare letteralmente un carattere jolly o backslash. –exclude-from=FILE Salta i file il cui nome di base corrisponde a qualsiasi nome di file letto da FILE (usando i caratteri jolly come descritto in –exclude). –exclude-dir=DIR Escludi le directory che corrispondono allo schema DIR dalle ricerche ricorsive. -I

Esamina un file binario come se non contenesse dati corrispondenti; questo è equivalente all’opzione –binary-files=without-match.

–include=GLOB Cerca solo i file il cui nome base corrisponde a GLOB (usando i caratteri jolly come descritto in –exclude). -R, -r, –recursive Leggi tutti i file sotto ogni directory, ricorsivamente; questo è equivalente all’opzione -d recurse.

Altre opzioni

–line-buffered Usa il line buffering sull’output. Questo può causare una penalizzazione delle prestazioni. –mmap

Se possibile, usa la chiamata di sistema mmap(2) per leggere l’input, invece della chiamata di sistema predefinita read(2). In alcune situazioni, –mmap offre prestazioni migliori. Tuttavia, –mmap può causare un comportamento indefinito (inclusi i core dump) se un file di input si restringe mentre grep è in funzione, o se si verifica un errore di I/O.

-U, –binary Tratta i file come binari. Per default, sotto MS-DOS e MS -Windows, grep indovina il tipo di file guardando i contenuti dei primi 32KB letti dal file. Se grep decide che il file è un file di testo, toglie i caratteri CR dal contenuto originale del file (per far funzionare correttamente le espressioni regolari con ^ e $). Specificando -U si annulla questa congettura, facendo sì che tutti i file vengano letti e passati al meccanismo di corrispondenza alla lettera; se il file è un file di testo con coppie CR/LF alla fine di ogni riga, questo causerà il fallimento di alcune espressioni regolari. Questa opzione non ha effetto su piattaforme diverse da MS-DOS e MS -Windows. -z, –null-data Tratta l’input come un insieme di linee, ciascuna terminata da un byte zero (il carattere ASCII NUL) invece che da un newline. Come l’opzione -Zo –null, questa opzione può essere usata con comandi come sort -z per elaborare nomi di file arbitrari.

Espressioni regolari

Un’espressione regolare è uno schema che descrive un insieme di stringhe. Le espressioni regolari sono costruite analogamente alle espressioni aritmetiche, usando vari operatori per combinare espressioni più piccole.

grep capisce tre diverse versioni della sintassi delle espressioni regolari: “base”, “estesa” e “perl”. In GNU grep, non c’è differenza nelle funzionalità disponibili tra la sintassi di base e quella estesa. In altre implementazioni, le espressioni regolari di base sono meno potenti. La seguente descrizione si applica alle espressioni regolari estese; le differenze per le espressioni regolari di base sono riassunte in seguito. Le espressioni regolari Perl forniscono funzionalità aggiuntive e sono documentate in pcresyntax(3) e pcrepattern(3), ma potrebbero non essere disponibili su tutti i sistemi.

I componenti fondamentali sono le espressioni regolari che corrispondono ad un singolo carattere. La maggior parte dei caratteri, comprese tutte le lettere e le cifre, sono espressioni regolari che corrispondono a se stesse. Qualsiasi metacarattere con un significato speciale può essere citato facendolo precedere da un backslash.

Il punto . corrisponde a qualsiasi singolo carattere.

Classi di caratteri ed espressioni parentetiche

Un’espressione parentetica è una lista di caratteri racchiusa da . Corrisponde a qualsiasi singolo carattere in quella lista; se il primo carattere della lista è il trattino ^ allora corrisponde a qualsiasi carattere non presente nella lista. Per esempio, l’espressione regolare corrisponde a qualsiasi singola cifra.

In un’espressione parentetica, un’espressione di intervallo consiste di due caratteri separati da un trattino. Corrisponde a qualsiasi singolo carattere che sia compreso tra i due caratteri, incluso, usando la sequenza di ordinamento e il set di caratteri del locale. Per esempio, nel locale C predefinito, è equivalente a. Molti locali ordinano i caratteri in ordine di dizionario, e in questi locali non è tipicamente equivalente a ; potrebbe essere equivalente a , per esempio. Per ottenere l’interpretazione tradizionale delle espressioni parentetiche, potete usare il locale C impostando la variabile d’ambienteLC_ALL al valore C.

Infine, alcune classi di caratteri sono predefinite nelle espressioni parentetiche, come segue. I loro nomi sono auto esplicativi, e sono, , , , , , , , , , , e . Per esempio, ] significa , tranne che quest’ultima forma dipende dal Clocale e dalla codifica dei caratteri ASCII, mentre la prima è indipendente dal locale e dal set di caratteri. (Si noti che le parentesi in questi nomi di classe sono parte dei nomi simbolici, e devono essere incluse in aggiunta alle parentesi che delimitano l’espressione della parentesi). La maggior parte dei meta-caratteri perde il suo speciale significato all’interno delle espressioni parentetiche. Per includere un letterale ] mettetelo per primo nella lista. Allo stesso modo, per includere un letterale ^ mettetelo ovunque ma non prima. Infine, per includere un letterale – mettilo per ultimo.

Anchoring

Il cursore ^ e il segno del dollaro $ sono meta-caratteri che corrispondono rispettivamente alla stringa vuota all’inizio e alla fine di una linea.

Il carattere backslash e le espressioni speciali

I simboli \< e \> corrispondono rispettivamente alla stringa vuota all’inizio e alla fine di una parola. Il simbolo \b corrisponde alla stringa vuota al bordo di una parola, e \B corrisponde alla stringa vuota purché non sia al bordo di una parola. Il simbolo \w è un sinonimo di] e \W è un sinonimo di ].

Ripetizione

Un’espressione regolare può essere seguita da uno dei vari operatori di ripetizione:

L’elemento precedente è opzionale e viene abbinato al massimo una volta.

*

L’elemento precedente verrà abbinato zero o più volte.

+

L’elemento precedente verrà abbinato una o più volte.

{n}

L’elemento precedente viene abbinato esattamente n volte.

{n,}

L’elemento precedente viene abbinato n o più volte.

{,m}

L’elemento precedente viene abbinato al massimo m volte.

{n,m}

L’elemento precedente viene abbinato almeno n volte, ma non più di m volte.

Concatenazione

Due espressioni regolari possono essere concatenate; l’espressione regolare risultante corrisponde a qualsiasi stringa formata dalla concatenazione di due sottostringhe che corrispondono rispettivamente alle espressioni concatenate.

Alternation

Due espressioni regolari possono essere unite dall’operatore infix |; l’espressione regolare risultante corrisponde a qualsiasi stringa che corrisponde a una delle due espressioni alternative.

Precedenza

La ripetizione ha la precedenza sulla concatenazione, che a sua volta ha la precedenza sull’alternanza. Un’intera espressione può essere racchiusa tra parentesi per ignorare queste regole di precedenza e formare una sottoespressione.

Riferimenti indietro e sottoespressioni

Il riferimento indietro \n, dove n è una singola cifra, corrisponde alla sottostringa precedentemente abbinata all’ennesima espressione tra parentesi dell’espressione regolare.

Espressioni regolari di base o estese

Nelle espressioni regolari di base i meta-caratteri ?, +, {, |, (, e ) perdono il loro significato speciale; usate invece le versioni con trattino \?, \+, \{, ||, \(, e \).

L’egrep tradizionale non supporta il metacarattere {, e alcune implementazioni di egrep supportano invece \{, così gli script portatili dovrebbero evitare { nei modelli di grep -E e dovrebbero usare per corrispondere un letterale {.

GNU grep -E cerca di supportare l’uso tradizionale assumendo che { non è speciale se sarebbe l’inizio di una specifica di intervallo non valida. Per esempio, il comando grep -E ‘{1’ cerca la stringa di due caratteri {1 invece di segnalare un errore di sintassi nell’espressione regolare. POSIX.2 permette questo comportamento come estensione, ma gli script portatili dovrebbero evitarlo.

Variabili d’ambiente

Il comportamento di grep è influenzato dalle seguenti variabili d’ambiente.

Il locale per la categoria LC_foo è specificato esaminando le tre variabili d’ambiente LC_ALL, LC_foo, LANG, in quest’ordine. La prima di queste variabili che è impostata specifica il locale. Per esempio, se LC_ALL non è impostato, ma LC_MESSAGES è impostato su topt_BR, allora il locale portoghese brasiliano è usato per la categoria LC_MESSAGES. Il locale C viene usato se nessuna di queste variabili d’ambiente è impostata, se il catalogo dei locali non è installato, o se grep non è stato compilato con il supporto della lingua nazionale ( NLS ).

GREP_OPTIONS Questa variabile specifica le opzioni predefinite da mettere davanti a qualsiasi opzione esplicita. Per esempio, se GREP_OPTIONS è’–binary-files=without-match –directories=skip’, grep si comporta come se le due opzioni –binary-files=without-match e–directories=skip fossero state specificate prima di qualsiasi opzione esplicita. Le specifiche delle opzioni sono separate da spazi bianchi. Un backslash sfugge al carattere successivo, quindi può essere usato per specificare un’opzione contenente spazi bianchi o un backslash. GREP_COLOR Questa variabile specifica il colore usato per evidenziare il testo trovato (non vuoto). È deprecata in favore di GREP_COLORS, ma è ancora supportata. Le capacità Themt, ms e mc di GREP_COLORS hanno la priorità su di essa. Può solo specificare il colore usato per evidenziare il testo non vuoto in qualsiasi riga corrispondente (una riga selezionata quando l’opzione della riga di comando -v è omessa, o una riga contestuale quando è specificato -v). Il valore predefinito è 01;31, che significa un testo in grassetto rosso in primo piano sullo sfondo predefinito del terminale. GREP_COLORS Specifica i colori e altri attributi usati per evidenziare varie parti dell’output. Il suo valore è una lista separata da due punti di capacità che di default è ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 con le capacità booleane rv e ne omesse (cioè false). Le capacità supportate sono le seguenti. sl=

SGR substring per intere linee selezionate (cioè, linee corrispondenti quando l’opzione della linea di comando -v è omessa, o linee non corrispondenti quando -v è specificata). Se però la capacità booleana rv e l’opzione -v della riga di comando sono entrambe specificate, si applica invece alle linee corrispondenti al contesto.Il valore predefinito è vuoto (cioè, la coppia di colori predefinita del terminale).

cx=

SGR substring per intere linee del contesto (cioè, linee non corrispondenti quando l’opzione -v della riga di comando è omessa, o linee corrispondenti quando -v è specificata). Se però la capacità booleana rv e l’opzione a riga di comando -v sono entrambe specificate, si applica invece alle linee non corrispondenti selezionate. Il valore predefinito è vuoto (cioè la coppia di colori predefinita del terminale).

rv

Valore booleano che inverte (scambia) il significato delle capacità sl= e cx= quando è specificata l’opzione della riga di comando -v. L’impostazione predefinita è false (cioè, la capacità è omessa).

mt=01;31

Sostringa SGR per la corrispondenza di testo non vuoto in qualsiasi riga corrispondente (cioè, una riga selezionata quando l’opzione della riga di comando -v è omessa, o una riga di contesto quando -v è specificata). Impostare questo è equivalente a impostare entrambi ms= e mc= allo stesso valore. L’impostazione predefinita è un testo in grassetto rosso in primo piano sullo sfondo della linea corrente.

ms=01;31

SGR sottostringa per la corrispondenza del testo non vuoto in una linea selezionata. (Questo è usato solo quando l’opzione a riga di comando -v è omessa.) L’effetto della capacità -sl= (o cx= se rv) rimane attivo quando questo è attivo. L’impostazione predefinita è un testo in grassetto rosso in primo piano sopra lo sfondo della linea corrente.

mc=01;31

SGR sottostringa per la corrispondenza di testo non vuoto in una linea di contesto. (Questo è usato solo quando è specificata l’opzione a riga di comando -v.) L’effetto della capacità cx= (o sl= se rv) rimane attivo quando si attiva. L’impostazione predefinita è un testo in grassetto rosso in primo piano sopra lo sfondo della riga corrente.

fn=35

SGR sottostringa per nomi di file che precedono qualsiasi riga di contenuto. L’impostazione predefinita è un testo in primo piano magenta sullo sfondo predefinito del terminale.

ln=32

SGR substring per i numeri di linea che precedono qualsiasi linea di contenuto. L’impostazione predefinita è un testo verde in primo piano sullo sfondo predefinito del terminale.

bn=32

SGR substring per gli offset di byte che precedono qualsiasi linea di contenuto. L’impostazione predefinita è un testo in primo piano verde sopra lo sfondo predefinito del terminale.

se=36

SGR substringa per separatori che sono inseriti tra campi di linea selezionati (:), tra campi di linea contestuali, (-), e tra gruppi di linee adiacenti quando è specificato un contesto non nullo (–). L’impostazione predefinita è un testo ciano in primo piano sullo sfondo predefinito del terminale.

ne

Valore booleano che impedisce la cancellazione a fine riga usando Erase in Line (EL) to Right (\33. LC_ALL, LC_CTYPE, LANG Queste variabili specificano il locale per la categoria LC_CTYPE, che determina il tipo di caratteri, per esempio, quali caratteri sono spazi bianchi. LC_ALL, LC_MESSAGES, LANG Queste variabili specificano il locale per la categoria LC_MESSAGES, che determina la lingua che grep usa per i messaggi. Il locale predefinito usa messaggi in inglese americano. POSIXLY_CORRECT Se impostato, grep si comporta come richiesto da POSIX.2; altrimenti, grep si comporta più come altri programmi GNU.POSIX.2 richiede che le opzioni che seguono i nomi dei file debbano essere trattate come nomi di file; per default, tali opzioni sono permutate all’inizio della listaoperand e sono trattate come opzioni. Inoltre, POSIX.2 richiede che le opzioni non riconosciute siano diagnosticate come “illegali”, ma poiché non sono realmente contro la legge, il default è diagnosticarle come “non valide”. POSIXLY_CORRECT disabilita anche _N_GNU_nonoption_argv_flags_, descritto di seguito. _N_GNU_nonoption_argv_flags_ (Qui N è l’ID numerico del processo di grep.) Se l’iesimo carattere del valore di questa variabile d’ambiente è 1, non considerate l’operando di grep come un’opzione, anche se sembra esserlo. Una shell può mettere questa variabile nell’ambiente per ogni comando che esegue, specificando quali operandi sono i risultati dell’espansione dei caratteri jolly del nome del file e quindi non dovrebbero essere trattati come opzioni. Questo comportamento è disponibile solo con la libreria GNU C, e solo quando POSIXLY_CORRECT non è impostato.

Stato di uscita

Normalmente, lo stato di uscita è 0 se vengono trovate le linee selezionate e 1 altrimenti. Ma lo stato di uscita è 2 se si è verificato un errore, a meno che non venga usata l’opzione -q o -quiet o –silent e venga trovata una linea selezionata. Si noti, tuttavia, che POSIX impone solo, per programmi come asgrep, cmp e diff, che lo stato di uscita in caso di errore sia maggiore di 1; è quindi consigliabile, per il bene della portabilità, usare una logica che verifichi questa condizione generale invece della stretta uguaglianza con 2.

Copyright

Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.

Questo è software libero; consultare la fonte per le condizioni di copia. Non c’è alcuna garanzia; nemmeno di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO.

Bugs

Reporting Bugs

Segnalazioni di bug via e-mail a <[email protected]>, una mailing list la cui pagina web è <http://lists.gnu.org/mailman/listinfo/bug-grep>.grep’s Savannah bug tracker si trova a <http://savannah.gnu.org/bugs/?group=grep>.

Bug noti

Un numero elevato di ripetizioni nel costrutto {n,m} può far sì che grep usi molta memoria. Inoltre, certe espressioni regolari otherobscure richiedono tempo e spazio esponenziali, e possono causare l’esaurimento della memoria da parte di grep.

I riferimenti all’indietro sono molto lenti, e possono richiedere tempo esponenziale.

Vedi anche

Pagine manuali regolari

awk(1), cmp(1), diff(1), find(1), gzip(1), perl(1), sed(1), sort(1), xargs(1), zgrep(1), mmap(2), read(2), pcre(3), pcresyntax(3), pcrepattern(3),terminfo(5), glob(7), regex(7).

Manuale del programmatore POSIX Pagina

grep(1p).

Documentazione TeXinfo

La documentazione completa per grep è mantenuta come manuale TeXinfo. Se i programmi info e grep sono correttamente installati nel tuo sito, il comando info grep dovrebbe darti accesso al manuale completo.

Note

GNU non è Unix, ma Unix è una bestia; la sua forma plurale è Unixen.

admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

lg