Leggere i file: head, grep, egrep | OTHER chapters | |||
Il comando
E' possibile specificare un differente numero di righe da leggere:
E' possibile specificare più di un file: in questo caso, le righe del file sono precedute dal nome del file.
E' possibile anche specificare i byte da stampare:
dove
Se il numero (
o le ultime
Il comando
dove
In questo esempio, stiamo cercando la stringa testuale '192.168.1.1', all'interno di tutti i file (
cerca la stringa di testo "Package:", all'interno del file
cerca la stringa di testo "Package:", all'interno dei file
cerca la stringa di testo 'Package: jfsutils' in tutti i file della directory corrente, mentre:
cerca la stringa di testo 'Package: jfsutils' in tutti i file della directory corrente e in tutte le sottodirectory (
Nel primo caso, stiamo chiedendo a
dove stiamo escludendo l'intera sottodirectory
Il comando
cerca la stringa di testo 'Package: jfsutils' all'interno del file
Nel caso il comando
dove leggiamo che
restituisce:
Se
E' possibile, anche, chiedere a
E' possibile, anche, chiedere a
Se si desidera ricevere, come output, solo la stringa di testo cercata, e non l'intera linea del file, utilizzare l'opzione
E' possibile, anche, chiedere a
Se l'opzione
Quando si effettua una ricerca su più file, è possibile chiedere a
Quando si effettua una ricerca su più file, è possibile chiedere a
Se si desidera limitare il numero di righe restituite da
Il comando
Se si desidera invertire la ricerca, cioè trovare tutte le righe che non contengano la stringa testuale, utilizzare l'opzione
Questi due comandi cercano tutte le righe del file i quantificatori:
le classi di caratteri:
le àncore:
altri metacaratteri:
Occorre fare attenzione, però, a quale motore delle espressioni regolari si utilizza, poichè, a seconda del motore utilizzato, alcuni metacaratteri potrebbero non essere riconosciuti. I metacaratteri sopra menzionati, per esempio, sono i metacaratteri riconosciuti dal motore delle espressioni regolari di Perl. Per essere certi che vengano riconosciuti, è sufficiente chiedere a
Per tornare ad utilizzare il motore delle espressioni regolari di default, invece, è sufficiente utilizzare l'opzione:
Naturalmente, trattandosi dell'impostazione di default, l'opzione
Questo non vale per la terza classe di espressioni regolari accettate da
A parte questi metacaratteri, nella versione GNU di
Il motore di base delle espressioni regolari ed il motore delle Espressioni Regolari Estese, poi, riconoscono le classi di carattere POSIX ( Portable Operating System Interface for Unix ), il cui significato dovrebbe essere chiaro:
C'è una opzione del comando
restituirebbe 192 risultati ( nel mio PC ), poichè il pattern "apt" trova riscontro in stringhe quali:
Se volessimo, invece, limitare la ricerca alle sole righe in cui il pattern appare come parola singola intera, dovremmo specificare:
ed il numero dei riscontri si abbasserebbe sensibilmente ( 70, nel mio caso ). Occorre ricordare che il motore delle espressioni regolari considera "word" le lettere, i numeri e gli underscore: tutto il resto è considerato "boundary". Non stupiamoci, quindi, di trovare, tra i risultati, sequenze quali:
visto che il trattino rientra tra i "boundary". Ebbene, l'opzione che possiamo utilizzare, per ottenere lo stesso risultato, è l'opzione
Se poi volessimo che il pattern coincidesse, addirittura, con l'intera riga ( e non solo con una singola parola intera ), potremmo utilizzare l'opzione
Ci sono ancora un paio di opzioni che potrebbero risultare molto utili:
Questi tre comandi sono tutti equivalenti e fanno la stessa cosa: non producono alcun output. E' possibile, infatti, invocare
Se, invece, si desidera sopprimere i soli messaggi di errore:
Questo evita la cascata di messaggi di errore, prodotti dall'attraversamento di directory o dal tentativo di lettura di file per i quali non abbiamo i permessi necessari. Il comando
|
||||
Leggere i file: head, grep, egrep | The .bit guides: original contents |