Altri comandi per leggere file di testo

Finora sono stati presentati numerosi comandi della shell per leggere file con gli editor di testo. In questa sezione ve ne presentiamo altri.

Il comando head

Potete usare il comando head per osservare l'inizio di un file. Digitate quanto segue:

head <filename>

head pu� rivelarsi un comando utile, ma poich� � limitato alle prime righe, non potete vedere l'effettiva lunghezza del file. Per default, potete leggere solo le prime dieci righe di un file. � comunque possibile modificare questo numero, specificandone uno diverso, come nel seguente esempio:

head -20 <filename>

Il comando tail

L'opposto di headtail. Usando il comando tail, potete visualizzare le ultime dieci righe di un file.

Il comando grep

Il comando grep risulta utile per trovare stringhe di caratteri specifiche all'interno di un file. Per esempio, se vi occorre trovare ogni riferimento alla parola "coffee" nel file sneakers.txt, digitate:

grep coffee sneakers.txt

Vedrete tutte le righe in quel file dove compare la parola "coffee".

SuggerimentoSuggerimento
 

A meno che non sia diversamente specificato, le ricerche di grep fanno una distinzione tra maiuscole e minuscole. Questo significa che la parola Coffee � diversa da coffee. Comunque tra le opzioni di grep si trova -i, che vi consente di effettuare una ricerca che non fa distinzione tra "maiuscole e minuscole". Per maggiori informazioni su grep consultate la pagina man relativa.

Ridirezionamento di I/O e pipe

Potete utilizzare i pipe e il ridirezionamento dell'output per memorizzare e/o stampare informazioni da leggere in un secondo momento.

Per esempio, potete utilizzare grep per cercare contenuti particolari di un file e salvare i risultati della ricerca o inviarli alla stampante.

Per stampare le informazioni relative all'occorrenza della parola "coffee" in sneakers.txt, per esempio, digitate:

grep coffee sneakers.txt | lpr

Caratteri jolly ed espressioni regolari

Cosa fare nel caso vi siate dimenticati il nome del file che state cercando? Utilizzando dei caratteri jolly o delle espressioni regolari potete eseguire delle azioni su uno o pi� file senza conoscerne il nome intero. Basta inserire le informazioni conosciute, quindi sostituire le restanti con un carattere jolly. Tali caratteri sono simboli speciali che possono sostituire lettere, numeri e simboli e che rendono le ricerche di directory e file particolari pi� semplici rispetto a un esame di lunghi elenchi di directory per trovare quanto desiderato.

SuggerimentoSuggerimento
 

Per saperne di pi� sui caratteri jolly o sulle espressioni regolari, date un'occhiata alla pagina man di bash (man bash). Ricordate che potete salvare le informazioni visualizzate in formato testo digitando man bash | col -b > bash.txt. Potete poi aprire e leggere il file con less o pico (pico bash.txt). Se volete stampare il documento, ricordate che � piuttosto lungo.

Il file si chiama "sneak____.txt," quindi digitate:

ls sneak*.txt

ecco che compare il nome intero del file:

sneakers.txt

L'asterisco (*) vi risulter� senz'altro utile durante le vostre ricerche, infatti controlla qualsiasi file che coincida con la sequenza che state cercando. Digitando perfino:

ls *.txt

oppure:

ls sn*

viene individuato il file sneakers.txt e qualsiasi altro file il cui nome inizi con sn o finisca con .txt. Il comando contribuisce a limitare il pi� possibile la ricerca.

Un modo per limitare una ricerca � quello di usare il punto interrogativo (?) che, come l'asterisco, aiuta a individuare un file che corrisponda alla sequenza di ricerca.

In questo caso, per� ? � utile per cercare un solo carattere, quindi se state cercando sneaker?.txt, i risultati della ricerca saranno sneakers.txt e/o sneakerz.txt, se esiste un simile nome di file.

Le espressioni regolari sono, invece, pi� complesse del semplice asterisco o punto di domanda.

Quando l'asterisco fa parte del nome di un file, per esempio, sneak*.txt, allora vanno utilizzate le cosiddette espressioni regolari.

Con il backslash (\) potete specificare che non intendete cercare tutto usando l'asterisco, ma che state cercando un file con un asterisco nel nome.

Se il file si chiama sneak*.txt, digitate:

sneak\*.txt

Ecco un breve elenco di caratteri jolly e di espressioni regolari: