grep - Unix, Linux Command Recurse in directory saltare file di pattern matching. Sopprimere i messaggi di errore sui file non esistenti o illeggibili. Portabilità nota: a differenza di GNU grep. grep tradizionale non era conforme a POSIX.2, perché grep tradizionale mancava un opzione - q e la sua opzione - s comportati opzione GNU grep rsquos - q come. Gli script di shell destinati ad essere portabile su grep tradizionale dovrebbero evitare sia q e - s e dovrebbe reindirizzare l'output devnull invece. Trattare il file (s) in formato binario. Per impostazione predefinita, in MS-DOS e MS Windows, grep indovina il tipo di file, cercando il contenuto del primo 32KB letti dal file. Se grep decide il file è un file di testo, si spoglia i caratteri CR da il contenuto del file originale (per rendere le espressioni regolari con e funzionano correttamente). Specificando - U overrules questo congetture, causando tutti i file da leggere e passati al meccanismo di corrispondenza pari pari se il file è un file di testo con coppie CRLF alla fine di ogni riga, questo farà sì che alcune espressioni regolari per sicuro. Questa opzione non ha effetto su piattaforme diverse da MS-DOS e MS Windows. Rapporto scostamenti di byte in stile Unix. Questo interruttore fa sì che grep segnalare scostamenti di byte come se il file fosse file di testo in stile Unix, cioè con caratteri CR spogliato off. Questo produrrà risultati identici a eseguire grep su una macchina Unix. Questa opzione non ha effetto a meno che non - b opzione viene utilizzata anche non ha alcun effetto sulle piattaforme diverse da MS-DOS e MS Windows. Stampa il numero di versione di grep standard error. Questo numero di versione dovrebbe essere incluso in tutte le segnalazioni di bug (vedi sotto). Invertire il senso di corrispondenza, per selezionare le linee non corrispondenti. Selezionare solo le righe contenenti corrispondenze che formano parole intere. Il test è che la sottostringa corrispondente deve o essere all'inizio della linea, o preceduti da un non-word carattere costituente. Allo stesso modo, deve essere o alla fine della linea o seguita da una non-parola carattere costituente. caratteri di parola-componente sono lettere, cifre e il carattere di sottolineatura. Selezionare solo le partite che corrispondono esattamente tutta la linea. sinonimo obsoleto per - i. Uscita un byte zero (il carattere ASCII NUL) anziché il carattere che segue normalmente un nome di file. Ad esempio, grep - lZ emette un byte zero dopo ogni nome di file invece del solito a capo. Questa opzione rende l'uscita inequivocabile, anche in presenza di nomi di file contenenti caratteri insoliti come capo. Questa opzione può essere utilizzata con comandi come trovare - print0. perl -0. sorta - z. e xargs -0 per elaborare i nomi di file arbitrari, anche quelli che contengono caratteri di nuova riga. Per cercare la stringa in un unico file test. sh gatto test. sh divertimento binbash () echo Questo è un test. Termina il nostro script di shell con il messaggio di successo uscita 1 dall'alto uscita grep di file: uscita grep demofile al controllo per la stringa data in più file: in questo caso test. sh e test1.sh gatto test. sh divertimento binbash () echo Questo è un Test. Termina il nostro script di shell con il messaggio di successo uscita 1 cat test1.sh binbash divertimento () echo Questa è una test1. Termina il nostro script di shell con il messaggio di successo exit 0 uscita grep in entrambi i file test. sh e test1.sh: test1.sh: exit 0 test. sh: l'uscita 1 a CASE ricerca maiuscole utilizzando grep - i, ha aggiunto EXIT in test1.sh gatto test1.sh divertimento binbash () echo Questa è una test1. Termina il nostro script di shell con il messaggio di successo, EXIT con 0 exit 0 grep uscita test1.sh test1.sh: exit 0 grep test1.sh prova uscita - i: Termina il nostro script di shell con il messaggio di successo, EXIT con 0 test1.sh: exit 0 due linee con opzione - i, come il suo caso insensitive. grep, egrep, fgrep - stampa le righe che corrispondono ad un modello DESCRIZIONE Grep cerca il file di input di nome s (o standard input se nessun file sono nominati, o il nome del file - è dato) per linee che contengono una corrispondenza al dato modello. Per impostazione predefinita, grep stampa le linee corrispondenti. Inoltre, due programmi variante egrep e fgrep sono disponibili. Egrep è uguale a grep - E. Fgrep è uguale a grep - F. - A NUM. --Dopo al contesto linee NUM Stampa NUM di ultimi contesto dopo le linee corrispondenti. - a. Processo --text un file binario come se si trattasse di testo questo è equivalente all'opzione --binary-filestext. - B NUM. --Prima al contesto NUM Stampa NUM linee di leader contesto prima le linee corrispondenti. - C NUM, - NUM. --context NUM linee di stampa NUM (di default 2) del contesto di output. - b. --byte-offset Stampa l'offset all'interno del file di input prima di ogni riga di output di byte. --binary-file di tipo Se i primi byte di un file indicano che il file contiene dati binari, presuppongono che il file è di tipo TYPE. Per impostazione predefinita, TIPO è binario. e grep uscite normalmente sia un messaggio di una riga dicendo che un file binario corrisponde, o nessun messaggio se non vi è alcuna corrispondenza. Se il tipo è senza-partita. grep presuppone che un file binario non corrisponde questo è equivalente all'opzione - I. Se il tipo è il testo. grep elabora un file binario come se fosse testo questo è equivalente all'opzione - a. Attenzione: grep --binary-filestext potrebbe uscita spazzatura binario, che può avere effetti collaterali sgradevoli se l'uscita è un terminale e se il driver del terminale interpreta alcuni di essi come comandi. - c. --count sopprime l'output normale invece di stampare un conteggio delle linee corrispondenti per ogni file di input. Con il - v. Opzione --invert-partita (vedi sotto), contare le righe non corrispondenti. AZIONE - d. --directories AZIONE Se un file di input è una directory, l'uso ACTION per elaborarlo. Per impostazione predefinita, AZIONE viene letto. il che significa che le directory vengono letti come se fossero file normali. Se l'azione è saltare. directory sono silenziosamente saltato. Se l'azione è recurse. grep legge tutti i file in ogni directory, ricorsivamente questo è equivalente alla opzione - r. - E. --extended-regexp Interpreta modello come una espressione regolare estesa (vedi sotto). MODELLO - e. --regexp modello d'uso schema del modello utile per proteggere i modelli che iniziano con -. - F. --fixed-stringhe Interpreta modello come una lista di stringhe fisse, separati da capo, una delle quali è da abbinare. - f File. FILE --file ottenere modelli da FILE. uno per riga. Il file vuoto contiene modelli a zero, e corrisponde perciò nulla. - G. --basic-regexp Interpreta modello come una espressione regolare di base (vedi sotto). Questa è l'impostazione predefinita. - H. --with-filename Stampa il nome del file per ogni partita. - h. --no-filename sopprimere il prefisso di nomi di file su di uscita quando più file vengono cercati. Uscita --help un breve messaggio di aiuto. Processo - I un file binario come se non contenesse dati corrispondenti questo è equivalente all'opzione --binary-fileswithout-partita. - io . --ignore-case ignora caso distinzioni in entrambi i file di input PATTERN e. - L. --files-senza-partita sopprime l'output normale invece di stampare il nome di ogni file di input da cui nessuna uscita avrebbe normalmente stato stampato. La scansione si fermerà alla prima partita. - l. --files-con-le partite sopprime l'output normale invece stampare il nome di ogni file di input da cui uscita avrebbe normalmente stato stampato. La scansione si fermerà alla prima partita. --mmap Se possibile, utilizzare la mmap (2) chiamata di sistema per leggere di ingresso, al posto del predefinito in lettura (2) chiamata di sistema. In alcune situazioni, --mmap rese migliori prestazioni. Tuttavia, --mmap può causare un comportamento non definito (compresi i core dump) se un file di input si restringe mentre grep è in funzione, oppure se si verifica un errore IO. - n. --line numero prefisso ogni riga di output con il numero di riga all'interno del suo file di input. - q. --silenzioso . Tranquillo sopprimere uscita normale --silent. La scansione si fermerà alla prima partita. Si veda anche l'opzione - s o --no-messaggi di seguito. - r. --recursive Leggi tutti i file sotto ogni directory, ricorsivamente questo è equivalente all'opzione recurse - d. - S . --no-messaggi eliminare i messaggi di errore sui file non esistenti o illeggibili. Portabilità nota: a differenza di GNU grep. grep tradizionale non era conforme a POSIX.2. perché grep tradizionale mancava un opzione - q e la sua opzione - s è comportato opzione - q GNU grep s come. Gli script di shell destinati ad essere portabile su grep tradizionale dovrebbero evitare sia q e - s e dovrebbe reindirizzare l'output devnull invece. - U. --binary Trattare il file (s) in formato binario. Per impostazione predefinita, in MS-DOS e MS Windows, grep indovina il tipo di file, cercando il contenuto del primo 32KB letti dal file. Se grep decide il file è un file di testo, si spoglia i caratteri CR da il contenuto del file originale (per rendere le espressioni regolari con e funzionano correttamente). Specificando - U overrules questo congetture, causando tutti i file da leggere e passati al meccanismo di corrispondenza pari pari se il file è un file di testo con coppie CRLF alla fine di ogni riga, questo farà sì che alcune espressioni regolari per sicuro. Questa opzione non ha effetto su piattaforme diverse da MS-DOS e MS Windows. - u. --unix byte-offset Rapporto stile Unix scostamenti di byte. Questo interruttore fa sì che grep segnalare scostamenti di byte come se il file fosse file di testo in stile Unix, cioè con caratteri CR spogliato off. Questo produrrà risultati identici a eseguire grep su una macchina Unix. Questa opzione non ha effetto a meno che non - b opzione viene utilizzata anche non ha alcun effetto sulle piattaforme diverse da MS-DOS e MS Windows. - V. --version Stampa il numero di versione di grep standard error. Questo numero di versione dovrebbe essere incluso in tutte le segnalazioni di bug (vedi sotto). - v. --invert-partita invertire il senso di corrispondenza, per selezionare le linee non corrispondenti. - w. --word-regexp selezionare solo le righe contenenti corrispondenze che formano parole intere. Il test è che la sottostringa corrispondente deve o essere all'inizio della linea, o preceduti da un non-word carattere costituente. Allo stesso modo, deve essere o alla fine della linea o seguita da una non-parola carattere costituente. caratteri di parola-componente sono lettere, cifre e il carattere di sottolineatura. - X . --line-regexp Selezionare solo le partite che corrispondono esattamente tutta la linea. - y sinonimo obsoleto per - i. - Z. Uscita --null un byte zero (il carattere ASCII NUL) anziché il carattere che segue normalmente un nome di file. Ad esempio, grep - lZ emette un byte zero dopo ogni nome di file invece del solito a capo. Questa opzione rende l'uscita inequivocabile, anche in presenza di nomi di file contenenti caratteri insoliti come capo. Questa opzione può essere utilizzata con comandi come trovare - print0. perl -0. sorta - z. e xargs -0 per elaborare i nomi di file arbitrari, anche quelli che contengono caratteri di nuova riga. Le espressioni regolari Un'espressione regolare è un modello che descrive un insieme di stringhe. Le espressioni regolari sono costruite in modo analogo alle espressioni aritmetiche, usando diversi operatori per combinare espressioni più piccoli. Grep comprende due diverse versioni di sintassi delle espressioni regolari: di base ed estese. In GNU grep. non vi è alcuna differenza di funzionalità disponibili utilizzando sintassi. In altre implementazioni, le espressioni regolari base sono meno potenti. La seguente descrizione vale per lunghi differenze espressioni regolari per le espressioni regolari di base sono riassunti in seguito. I mattoni fondamentali sono le espressioni regolari che corrispondono a un singolo carattere. La maggior parte dei personaggi, tra cui tutte le lettere e le cifre, sono espressioni regolari che si corrispondono. Qualsiasi metacarattere con significato speciale può essere citato facendolo precedere da una barra inversa. Un elenco di caratteri racchiusi da e corrisponde a qualsiasi singolo carattere in quella lista, se il primo carattere della lista è il cursore allora corrisponde a qualsiasi carattere non è nella lista. Ad esempio, l'espressione regolare 0123456789 corrisponde a qualsiasi cifra singola. Un intervallo di caratteri può essere specificato dando il primo e l'ultimo carattere, separati da un trattino. Infine, alcune classi denominate di caratteri sono predefiniti. I loro nomi sono auto esplicativo, e sono: alnum:. : Alpha:. : CNTRL:. : Cifre:. : Grafico:. :inferiore: . : Stampa:. : Punct:. :spazio: . : Superiore:. e: xdigit :. Ad esempio,: alnum: significa 0-9A-Za-z. tranne quest'ultima forma dipende dalla localizzazione POSIX e la codifica dei caratteri ASCII, mentre il primo è indipendente dalla localizzazione e set di caratteri. (Si noti che le parentesi di questi nomi delle classi sono parte dei nomi simbolici, e devono essere inclusi in aggiunta alle staffe che delimitano la lista staffa.) La maggior parte dei metacaratteri perdono il loro significato speciale all'interno di liste. Per includere un luogo letterale è il primo della lista. Allo stesso modo, per includere un luogo letterale ovunque ma in primo luogo. Infine, per includere un letterale - posizionarlo scorso. Il periodo . corrisponde a qualsiasi singolo carattere. Il simbolo w è sinonimo di: alnum: e W è sinonimo di: alnum. Il punto di inserimento e del dollaro sono metacaratteri che corrispondono, rispettivamente, la stringa vuota all'inizio e alla fine di una riga. I simboli lt e GT, rispettivamente corrispondere alla stringa vuota all'inizio e alla fine di una parola. Il simbolo B corrisponde alla stringa vuota sul bordo di una parola, e B corrisponde alla stringa vuota ha fornito la sua non è a bordo di una parola. Un'espressione regolare può essere seguita da uno dei diversi operatori di ripetizione: L'oggetto che precede è opzionale e abbinati al più una volta. L'oggetto che precede sarà fatto corrispondere zero o più volte. L'oggetto che precede sarà fatto corrispondere una o più volte. n L'oggetto che precede corrisponde esattamente n volte. n, L'elemento precedente è abbinato n o più volte. n, m L'elemento precedente è abbinato almeno n volte, ma non più di m volte. Due espressioni regolari possono essere concatenate l'espressione regolare risultante corrisponde a qualsiasi stringa formata concatenando due stringhe che corrispondono rispettivamente alle due sottoespressioni concatenate. Due espressioni regolari possono essere unite dall'operatore infisso l'espressione regolare risultante corrisponde a qualsiasi stringa che corrisponde ad una sottoespressione. La ripetizione ha la precedenza sulla concatenazione, che a sua volta ha la precedenza sulla alternanza. Un'intera sottoespressione può essere racchiusa tra parentesi per ignorare queste regole di precedenza. Il backreference n. dove n è una singola cifra, corrisponde alla sottostringa in precedenza di pari passo con il n ° espressione tra parentesi dell'espressione regolare. Nelle espressioni regolari base i metacaratteri. . . . (. E) perdono il loro significato speciale invece utilizzare le versioni con la backslash. . . . ( . e ) . egrep tradizionale non ha sostenuto il metacarattere, e alcune implementazioni egrep supporta invece, in modo da script portatili dovrebbero evitare nei modelli egrep e dovrebbero usare per abbinare un letterale. GNU egrep tenta di sostenere uso tradizionale assumendo che non è speciale se sarebbe l'inizio di una specifica di intervallo non valido. Ad esempio, le ricerche il comando di shell egrep per la stringa di due caratteri, invece di segnalare un errore di sintassi nell'espressione regolare. POSIX.2 permette questo comportamento come estensione, ma gli script portatili dovrebbe evitarlo. VARIABILI D'AMBIENTE GREPOPTIONS Questa variabile specifica opzioni di default per essere messi di fronte a tutte le opzioni esplicite. Per esempio, se GREPOPTIONS è --binary-fileswithout-partita --directoriesskip. grep si comporta come se le due opzioni --binary-fileswithout-partita e --directoriesskip erano state specificate prima di tutte le opzioni esplicite. specifiche di opzione sono separati da spazi bianchi. Un backslash sfugge il carattere successivo, in modo che possa essere utilizzato per specificare un'opzione che contiene spazi bianchi o una barra rovesciata. LCALL. LCMESSAGES. LANG Queste variabili specificare le impostazioni internazionali LCMESSAGES, che determina la lingua che utilizza grep per i messaggi. Il locale è determinata dalla prima di queste variabili che viene impostato. Inglese americano viene utilizzata se nessuna di queste variabili d'ambiente sono impostate, o se il catalogo dei messaggi non è installato, o se grep non è stato compilato con il supporto lingua nazionale (NLS). LCALL. LCCTYPE. LANG Queste variabili specificano il locale LCCTYPE, che determina il tipo di caratteri, ad esempio, che personaggi sono spazi bianchi. Il locale è determinata dalla prima di queste variabili che viene impostato. Il locale POSIX è utilizzata se nessuna di queste variabili d'ambiente sono impostate, o se il catalogo locale non è installato, o se grep non è stato compilato con il supporto lingua nazionale (NLS). POSIXLYCORRECT Se impostato, grep si comporta come POSIX.2 richieda una diversa interpretazione, grep comporta più come altri programmi GNU. POSIX.2 richiede che le opzioni che seguono i nomi dei file devono essere trattati come i nomi dei file per impostazione predefinita, tali opzioni vengono permutate verso la parte anteriore della lista operandi e sono trattati come opzioni. Inoltre, POSIX.2 richiede che le opzioni non riconosciute essere diagnosticati come illegale, ma dal momento che in realtà non sono contro la legge il valore di default è quello di diagnosticare loro come non validi. POSIXLYCORRECT disabilita anche N GNUnonoptionargvflags. descritto sotto. N GNUnonoptionargvflags (Qui N è grep s ID del processo numerico). Se l'i-esimo carattere di questo valore variabili d'ambiente è 1. non considerano l'i-esimo operando di grep essere un'opzione, anche se sembra essere uno. Una shell può mettere questa variabile nell'ambiente per ogni comando viene eseguito, precisando quali operandi sono i risultati del nome del file di espansione jolly e, pertanto, non devono essere trattati come opzioni. Questo comportamento è disponibile solo con la libreria GNU C, e solo quando POSIXLYCORRECT non è impostato. DIAGNOSTICA Normalmente, stato di uscita è 0 se sono state trovate corrispondenze, e 1 se non sono state trovate corrispondenze. (L'opzione - v inverte il senso della stato di uscita.) Stato di uscita è 2 se ci sono stati errori di sintassi nel modello, file di input inaccessibili, o altri errori di sistema. segnalazioni di bug e-mail a bug-gnu-utilsgnu. org. Assicurarsi di includere la parola grep da qualche parte nel campo Oggetto:. Grandi conta ripetizione nel m, n costruiscono può causare grep di utilizzare grandi quantità di memoria. Inoltre, alcune altre espressioni regolari oscure richiedono tempo esponenziale e nello spazio, e possono causare grep a corto di memoria. Backreference sono molto lenti, e possono richiedere time. Linux esponenziale e Unix comando grep grep. che sta per Global Print espressione regolare, elabora testo riga per riga e stampa le linee che corrispondono a un modello specifico. grep sintassi Grep è un potente strumento per la corrispondenza di una espressione regolare contro il testo in un file, più file o un flusso di ingresso. Si cerca il modello di testo specificato nella riga di comando, e restituisce i risultati per voi. Esempio di utilizzo Diciamo vuole individuare rapidamente la frase nostri prodotti in file HTML sul computer. Consente di iniziare con la ricerca di un singolo file. Qui, il nostro modello di è i nostri prodotti e il nostro file è un prodotto-listing. html. Una singola riga è stato trovato contenente il nostro modello, e grep emette l'intera linea corrispondente al terminale. La linea è più lunga la nostra larghezza del terminale in modo che il testo si avvolge attorno alle seguenti linee, ma questa uscita corrisponde esattamente ad una linea nel nostro file. Nota: il modello viene interpretato da grep come un'espressione regolare. Nell'esempio di cui sopra, tutti i personaggi che abbiamo usato (lettere e uno spazio) sono interpretati letteralmente nelle espressioni regolari, in modo che solo la frase esatta sarà abbinato. Altri personaggi hanno un significato particolare, ma mdash alcuni segni di punteggiatura, per esempio. Per ulteriori informazioni, vedere il nostro Regular Expression riferimento rapido. Sta guardando uscita grep di colore Se usiamo l'opzione --color, le nostre partite di successo saranno evidenziati per noi: la visualizzazione di numeri di riga delle partite di successo Sarà ancora più utile se sappiamo dove appare la linea corrispondente nel nostro file. Se specifichiamo l'opzione - n, grep sarà prefisso ogni riga di corrispondenza con il numero di riga: La nostra linea di corrispondenza è preceduto da 18: che ci dice questo corrisponde alla linea 18 nel nostro file. Esecuzione di grep case-insensitive cerca E se i nostri prodotti appare all'inizio di una frase, o appare in maiuscolo Possiamo specificare l'opzione - i per eseguire un case-insensitive partita: Utilizzando l'opzione - i, grep trova una corrispondenza on line 23 pure. La ricerca in più file utilizzando un carattere jolly Se abbiamo più file per la ricerca, siamo in grado di cercare tutti utilizzando un carattere jolly nel nostro nome FILE. Invece di specificare prodotto listing. html. siamo in grado di utilizzare un asterisco () e l'estensione. html. Quando viene eseguito il comando, la shell si espanderà l'asterisco al nome di qualsiasi file che trova (nella directory corrente) che termina in. html. Si noti che ogni riga inizia con il file specifico in cui si verifica quella partita. Ricorsivamente ricerca sottodirectory Possiamo estendere la nostra ricerca per le sottodirectory e tutti i file in esse contenuti con l'opzione - r, che dice a grep per effettuare la sua ricerca in modo ricorsivo. Consente di cambiare il nostro nome del file per appena un asterisco (), in modo che possa adattarsi a qualsiasi nome di file o directory, e non solo i file HTML: Questo ci dà tre partite supplementari. Si noti che il nome della directory è incluso per tutti i file corrispondenti che non sono nella directory corrente. Uso delle espressioni regolari per eseguire ricerche più potenti Il vero potere di grep è che può essere utilizzato per abbinare le espressioni regolari. (Questo è quello che il re in grep sta per). Le espressioni regolari usano caratteri speciali nella stringa di modello per abbinare una più ampia gamma di stringhe. Vediamo un semplice esempio. Diciamo che si desidera trovare ogni occorrenza di una frase simile ai nostri prodotti nei file HTML, ma la frase dovrebbe sempre iniziare con la nostra e terminare con prodotti. Siamo in grado di specificare questo motivo invece: our. products. Nelle espressioni regolari, il punto (.) Viene interpretato come un carattere jolly singolo carattere. Questo significa qualsiasi carattere che appare in questo luogo corrisponderà. L'asterisco () indica il carattere precedente, che appare zero o più volte, corrisponderà. Quindi la combinazione. corrisponderà un numero qualsiasi di qualsiasi carattere. Per esempio, i nostri prodotti stupefacenti, il nostro, i migliori prodotti sempre, e anche ourproducts corrisponderanno. E poiché sono stati specificando l'opzione - i, i nostri prodotti e Ourproducts abbinerà pure. Consente di eseguire il comando con questa espressione regolare, e vedere che cosa le partite supplementari che possiamo ottenere: Qui, abbiamo anche ottenuto una partita dalla frase nostri prodotti pregiati. Grep è un potente strumento che può aiutare a lavorare con i file di testo, e diventa ancora più potente quando si diventa agio con le espressioni regolari. Descrizione Tecnica grep cerca (o standard input se nessun file sono nominati, o se un singolo trattino (-) è dato come nome del file) il file di input di nome s per le linee che contengono una corrispondenza al dato modello. Per impostazione predefinita, grep stampa le linee corrispondenti. Inoltre, tre programmi variante egrep. fgrep e rgrep sono disponibili: egrep è la stessa cosa che lanciare grep - E. In questa modalità, grep valuta la stringa MODELLO come espressione regolare estesa (ERE). Oggigiorno, ERE non si estende molto oltre espressioni regolari base, ma possono ancora essere molto utile. Per ulteriori informazioni sulle espressioni regolari estesi, vedere di base contro le espressioni regolari estese. sotto. fgrep è la stessa cosa che lanciare grep - F. In questa modalità, grep valuta la vostra stringa di modello come un mdash stringa fissa ogni carattere nella stringa viene trattata letteralmente. Ad esempio, se la stringa contiene un asterisco (), grep cercherà di corrispondere con un asterisco reale, piuttosto che interpretare questo come un jolly. Se la stringa contiene più righe (se contiene ritorni a capo), ogni riga sarà considerata una stringa fissa, e nessuno di essi può innescare una corrispondenza. rgrep è la stessa cosa che lanciare grep - r. In questa modalità, grep effettuerà la sua ricerca in modo ricorsivo. Se incontra una directory, si attraverserà in quella directory e continuare la ricerca. (I link simbolici sono ignorate se si vuole directory che sono simbolicamente legati cercare, si consiglia di utilizzare l'opzione - R, invece). Nei sistemi operativi precedenti, egrep. fgrep e rgrep erano programmi distinti con i loro propri exectuables. Nei sistemi moderni, questi i nomi dei comandi speciali sono semplicemente scorciatoie a grep con le bandiere appropriati abilitati. Essi sono funzionalmente equivalenti. Opzioni legale Stampa un messaggio di aiuto brevemente riassumere le opzioni della riga di comando, e uscire. Se possibile, utilizzare la chiamata di sistema mmap per leggere l'input, invece della chiamata di sistema di lettura di default. In alcune situazioni, --mmap rese migliori prestazioni. Tuttavia, --mmap può causare un comportamento non definito (compresi i core dump) se un file di input si restringe mentre grep è in funzione, oppure se si verifica un errore IO. Trattare il file (s) in formato binario. Per impostazione predefinita, in MS-DOS e MS Windows, grep indovina il tipo di file, cercando il contenuto del primo 32KB letti dal file. Se grep decide il file è un file di testo, si spoglia i caratteri CR da il contenuto del file originale (per rendere le espressioni regolari con e funzionano correttamente). Specificando - U overrules questo congetture, causando tutti i file da leggere e passati al meccanismo di corrispondenza pari pari se il file è un file di testo con coppie CRLF alla fine di ogni riga, questo farà sì che alcune espressioni regolari per sicuro. Questa opzione non ha effetto su piattaforme diverse da MS-DOS e MS Windows. Trattare l'ingresso come un insieme di righe, ciascuna terminato da un byte zero (carattere ASCII NUL) invece di una nuova riga. Come l'-Z o l'opzione --null, questa opzione può essere utilizzata con comandi come sorta - z per elaborare i nomi di file arbitrari. Espressioni regolari Un'espressione regolare è un modello che descrive un insieme di stringhe. Le espressioni regolari sono costruite in modo analogo alle espressioni aritmetiche, usando diversi operatori per combinare espressioni più piccoli. grep capisce tre diverse versioni di sintassi delle espressioni regolari: quotbasicquot (BRE), quotextendedquot (ERE) e quotperlquot (PRCE). In GNU grep. non vi è alcuna differenza nella disposizione funzionalità tra sintassi di base ed estese. In altre implementazioni, le espressioni regolari base sono meno potenti. La seguente descrizione vale per lunghi differenze espressioni regolari per le espressioni regolari di base sono riassunti in seguito. Perl espressioni regolari forniscono funzionalità aggiuntive. I mattoni fondamentali sono le espressioni regolari che corrispondono a un singolo carattere. La maggior parte dei personaggi, tra cui tutte le lettere e le cifre, sono espressioni regolari che si corrispondono. Qualsiasi meta-personaggio con significato speciale può essere citato facendolo precedere da una barra inversa. Il punto (.) Corrisponde a qualsiasi singolo carattere. Classi di caratteri e la staffa Espressioni Un'espressione staffa è un elenco di caratteri racchiusi da e. Esso corrisponde a qualsiasi singolo carattere in quella lista, se il primo carattere della lista è il cursore allora corrisponde a qualsiasi carattere non è nella lista. Ad esempio, l'espressione regolare 0123456789 corrisponde a qualsiasi cifra singola. All'interno di un'espressione staffa, un'espressione gamma si compone di due caratteri separati da un trattino. Esso corrisponde a qualsiasi singolo carattere che ordina tra i due personaggi, compreso, utilizzando i locali fascicolazione sequenza e set di caratteri. Per esempio, nelle impostazioni di default C, A-D è equivalente a abcd. Molti locali ordinare caratteri in ordine dizionario, e in questi locali un-D è in genere non equivale a abcd potrebbe essere equivalente a aBbCcDd. per esempio. Per ottenere l'interpretazione tradizionale di espressioni fra parentesi quadre, è possibile utilizzare la versione locale C impostando la variabile d'ambiente LCALL al valore C. Infine, alcune classi denominate di caratteri sono predefiniti all'interno di espressioni fra parentesi quadre, come segue. I loro nomi sono auto esplicativo, e sono: alnum:. : Alpha:. : CNTRL:. : Cifre:. : Grafico:. :inferiore: . : Stampa:. : Punct:. :spazio: . : Superiore:. e: xdigit:. Ad esempio,: alnum: indica la classe di caratteri di numeri e lettere nella localizzazione corrente. Nella codifica locale e carattere ASCII set C, questo è lo stesso come 0-9A-Za-z. (Si noti che le parentesi di questi nomi delle classi sono parte dei nomi simbolici, e devono essere inclusi in aggiunta alle staffe che delimitano l'espressione staffa.) La maggior parte dei meta-personaggi perdono il loro significato speciale all'interno di espressioni fra parentesi quadre. Per includere un luogo letterale è il primo della lista. Allo stesso modo, per includere un luogo letterale ovunque ma in primo luogo. Infine, per includere un letterale -. posizionarlo durare. Il punto di inserimento e del dollaro sono meta-caratteri che corrispondono, rispettivamente, la stringa vuota all'inizio e alla fine di una riga. Il carattere backslash e speciale Espressioni I simboli lt e GT corrispondono, rispettivamente, alla stringa vuota all'inizio e alla fine di una parola. Il simbolo B corrisponde alla stringa vuota sul bordo di una parola, e B corrisponde alla stringa vuota ha fornito la sua non è a bordo di una parola. Il simbolo w è sinonimo di: alnum: e W è sinonimo di: alnum:. La ripetizione Un'espressione regolare può essere seguita da uno dei diversi operatori di ripetizione:
No comments:
Post a Comment