next up previous contents index
Next: Modificare file con Emacs Up: Piccoli programmi potenti Previous: Cosa c'è nel file?

Comandi di elaborazione

Questa sezione discute i comandi che alterano un file, ci eseguono una determinata operazione o mostrano statistiche su di esso.

grep  [-nvwx] [-numero] espressione [file1 file2 ...fileN]

Uno dei comandi più utili di Unix è grep, il generalized regular expression parser (analizzatore generalizzato di espressioni regolari). È un nome buffo per uno strumento che ricerca del testo in un file solamente. Il modo più semplice per usare grep è questo:



Uno svantaggio di questo comando è che, sebbene mostri tutte le linee contenenti una parola, non dice dove cercarla nel file--non dà nessun numero di riga: può essere utile secondo quello che state facendo. Per esempio, se state cercando gli errori nell'output di un programma, potete provare a.out | grep error, dove a.out è il nome del vostro programma.

Se siete interessati alla posizione delle corrispondenze, usate l'opzione n con grep per dirgli di stampare i numeri di riga. Usate l'opzione v se volete vedere tutte le linee che non contengono l'espressione specificata.

Un'altra caratteristica di grep è che verifica solo parti di una parola, come nel mio esempio precendente igre verifica tigre. Per comunicare a grep di verificare solo parole intere, usate l'opzione w; l'opzione x comunica a grep di controllare le corrispondenze di linee intere.

Se non specificate nessun file, grep esamina lo stdin.

wc  [-clw] [file1 file2 ...fileN]

wc sta per word count (conta parole). Conta semplicemente il numero di parole, linee e caratteri nel/nei file. Se non viene specificato nessun file nella linea di comando, opera sullo stdin.

I tre parametri, clw, stanno rispettivamente per caratteri, linee e word (parole), e comunicano a wc quali dei tre conteggiare. Così, wc -cw conta il numero di caratteri e di parole, ma non il numero di linee. Per default, wc conta tutto--parole, linee e caratteri.

Un uso semplice di wc è trovare quanti file sono presenti in una directory: ls | wc -w. Se volete vedere quanti file finiscono con .c, provate ls *.c | wc -w.

spell  [file1 file2 ...fileN]

spell è un comando Unix di controllo ortografico molto semplice, generalmente per l'inglese americano.gif spell è un filtro, come molti dei programmi di cui abbiamo parlato, che legge un file di testo ASCII e scrive tutte le parole che considera errate. spell opera sui file elencati nella linea di comando, o, se non ne vengono dati, sullo stdin.

Probabilmente nella vostra macchina è disponibile anche un programma di ortografia più sofisticato, ispell . ispell offre la possibilità di correggere l'ortografia ed ha una simpatica interfaccia a menù se viene specificato un file nella linea di comando, oppure funziona come filtro se non viene specificato nessun file.

Anche se operare con ispell dovrebbe essere abbastanza banale, consultate la man page se avete bisogno di maggiori informazioni.

cmp  file1 [file2]

cmp ``compares'' (confronta) due file. Il primo deve essere specificato nella linea di comando, mentre il secondo può essere specificato nella linea di comando o letto dallo standard input. cmp è molto semplice, e dice solamente dove i due file cominciano a non essere identici.

diff  file1 file2

Uno dei comandi standard di Unix più complicati è chiamato diff. La versione GNU  di diff ha più di venti opzioni possibili da linea di comando! È una versione di cmp molto più potente e mostra quali sono le differenze invece di comunicare semplicemente dove si trova la prima.

Dato che parlare in modo approfondito di diff esula dallo scopo di questo libro, ne mostrerò soltanto le operazioni di base. In breve, diff accetta due parametri (i file da confrontare) e mostra le differenze tra questi linea per linea. Per esempio:



Come potete vedere, diff non stampa niente quando i due file sono identici; quando confronto due file diversi, ho un'intestazione di sezione, 1c1,2, che indica che stava confrontando la linea 1 del file di sinistra, animali, con le linee 1-2 di cani e quali differenze ha notato. Quindi confronta la linea 3 di animali con la linea 4 di cani. Mentre può sembrare strano a prima vista confrontare diversi numeri di riga, è molto più efficiente di elencare ogni singola linea se c'è soltanto un ritorno a capo in più all'inizio di un file.

gzip  [-v#] [file1 file2 ... fileN]
gunzip  [-v] [file1 file2 ... fileN]
zcat  [file1 file2 ...fileN]

Questi tre programmi vengono usati per comprimerecompressione e decomprimeredecompressione dati. gzip, o GNU zip, è il programma che legge i file originali e rende file più piccoli. gzip cancella i file specificati dalla linea di comando e li sostituisce con file che hanno nome identico ma con un ``.gz'' finale.

tr  stringa1 stringa2

Il comando di ``traduzione di caratteri'' opera sull'input standard--non accetta un nome di file come parametro. Invece, i suoi due parametri sono stringhe arbitrarie. Sostituisce tutte le stringhe uguali a stringa1 nell'input con stringa2. In aggiunta a dei comandi semplici come tr pippo pluto, tr accetta anche comandi più complicati. Ad esempio, ecco un modo veloce di convertire i caratteri minuscoli in caratteri maiuscoli:



tr è abbastanza complesso e di solito viene usato in piccoli programmi di shell.


next up previous contents index
Next: Modificare file con Emacs Up: Piccoli programmi potenti Previous: Cosa c'è nel file?


Fri Sep 19 00:41:53 CEST 1997