Next: Anche il file discende
Up: Le operazioni con i
Previous: Cambiamo nome. (mv)
  Contents
Finora avete giocato a taglia e cuci con i file, ma non avete ancora
visto cosa c'è dentro. Bisogna premettere che esistono quattro tipi
di file:
- File ordinari;
- File device (cioè ``finti'' che si riferiscono ad una periferica);
- Le directory (abbiate pazienza, le vedremo in seguito);
- I link simbolici (abbiate ancora più pazienza :).
Quelli che noi abbiamo trattato finora e di cui tratteremo fino alla
fine del capitolo sono file ordinari, che a loro volta sono di due
tipi fondamentali:
- I file di testo (in inglese text files), che contengono
solo caratteri alfanumerici e che Unix può visualizzare bene;
- I file binari (in inglese binary files), che contengono
codici speciali e che sembrano scritti da scimmie quando vengono visualizzati
sullo schermo.
I file delle immagini, dei database, dei fogli di calcolo, della video
scrittura e quasi tutto il resto fanno parte del secondo tipo. Per
visualizzare un file di testo sullo schermo si utilizza il comando
cat:
-
-
width
$ cat nome_file_da_visualizzare
width
Potreste decidere ora di dare un'occhiata al file del primo canto
della Divina Commedia:
-
-
width
quest@medialab:$ cat canto
width
Se invece provate ad utilizzare cat con un file di tipo immagine
o di qualunque altro tipo vedremo scorrere sullo schermo il dialetto
meridionale di un abitante di Marte ma provateci:
-
-
width
quest@medialab:$ cat freaknet.gif
GIF87AVqgv1/a`R Sq L@ W@p3Ybt>) 5{S[{8sft Gwe r@6rY%O9
q`J?|b[cTDgX'o9qeF7kjhE%cG@a#erar |&+[G0b\DK{u:?,Wxt_Z
||+,(y xc{#D{R#-49 r>'cYs{c!bEv J ;% qqMy#yow]lYFuhhF`
I @Ox%MA# Ux>v(u?u:}_v)rZ(ao-?f tyViuuqtF %pkxqkbBciJ(
Tdsct aB N %FYZ[@Kz 1q||I#`O{pe4FwKf<Pr>X`n A)c6]08k`
s?iI#F`bUpG(QP8rRi|pM|tamrp>rpI(OR@-yQop|_NJX!=r9uq
$$!SKoo<cAc%aHCU\oBvu
quest@medialab:$
width
Il programma cat nonostante la sua bontà ha una pecca, se il
file che vorremmo vedere è troppo lungo ci scorre via davanti agli
occhi senza che noi possiamo leggere niente. Per vedere solo le prime
dieci righe di un file c'è il comando head. Proviamo a leggere
le prime dieci righe del primo Canto della Divina Commedia:
-
-
width
quest@medialab:$ head canto
LA DIVINA COMMEDIA
di Dante Alighieri INFERNO
<B>Inferno: Canto I</B>
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura
width
Se al contrario invece volessimo sapere che fine hanno fatto Dante
e Virgilio alla fine del primo Canto dovremmo usare il comando tail.
-
-
width
quest@medialab:$ tail canto
tal era io a quella vista nova:
veder voleva come si convenne
l'imago al cerchio e come vi s'indova;
ma non eran da ci le proprie penne:
se non che la mia mente fu percossa
da un fulgore in che sua voglia venne
A l'alta fantasia qui manc possa;
ma già volgeva il mio disio e 'l <I>velle</I>,
s come rota ch'igualmente mossa,
l'amor che move il sole e l'altre stelle.
width
Ora se invece volessimo vedere, finalmente, tutto il contenuto di
un file di testo e scorrerlo con calma, dovremmo usare i comandi more
e less. Proviamo a digitare:
-
-
width
quest@medialab$ more canto
LA DIVINA COMMEDIA
di Dante Alighieri INFERNO
<B>Inferno: Canto I</B>
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura
che la diritta via era smarrita.
Ahi quanto a dir qual era cosa dura
esta selva selvaggia e aspra e forte
che nel pensier rinova la paura!
Tant' amara che poco più morte;
ma per trattar del ben ch'ì vi trovai,
dir de l'altre cose ch'ì v'ho scorte.
Io non so ben ridir com'ì v'intrai,
tant'era pien di sonno a quel punto
che la verace via abbandonai.
Ma poi ch'ì fui al più d'un colle giunto,
là dove terminava quella valle
-More-(0%)
width
come possiamo vedere in fondo alla pagina c'è un indice che ci dice
quale percentuale abbiamo visto fin'ora del documento che stiamo leggendo,
nel nostra caso (0%). Con more il testo si scorre premendo
in tasto invio. Proviamo ora ad usare less.
-
-
width
quest@medialab$ less canto
LA DIVINA COMMEDIA
di Dante Alighieri INFERNO
<B>Inferno: Canto I</B>
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura
chÈ la diritta via era smarrita.
Ahi quanto a dir qual era cosa dura
esta selva selvaggia e aspra e forte
che nel pensier rinova la paura!
Tant' amara che poco pi morte;
ma per trattar del ben ch'ì vi trovai,
dir de l'altre cose ch'ì v'ho scorte.
Io non so ben ridir com'ì v'intrai,
tant'era pien di sonno a quel punto
che la verace via abbandonai.
Ma poi ch'ì fui al pi d'un colle giunto,
l dove terminava quella valle
canto 1/14753 0%
width
il risultato è più o meno identico; cambia l'indice in basso, che
sta volta ci indica pure a che riga stiamo leggendo. In less
il testo si scorre utilizzando i tasti cursore.
Ora che sappiamo come leggere un file vorremmo anche cercarci dentro
le cose che ci interessano, magari vorremmo sapere tutte le righe
del primo canto della Divina commedia in cui compare la parola Dio.
A questo scopo ci può aiutare il commando grep:
-
-
width
$ grep parola_che_vogliamo_cercare file_in_cui_cercare
width
per esempio:
-
-
width
quest@medialab:$ grep dio canto
vagliami lì lungo studio e l grande amoren fiamma d'esto
incendio non m'assale.che nvidiosi son d'ogne altra sorte.da
fastidiosi vermi era ricolto.Ovidio l tergo, e l'ultimo
Lucano.che con misura nullo spendio ferci.portando dentro
accidioso fummo: D'ogne malitia, ch'odio in cielo
acquista,quelle fiere selvagge che n odio hannolo ncendio e
giace dispettoso e torto,gent' avara, invidiosa e superb:del
misero Sabello e di Nasidio, Taccia di Cadmo e d'Aretusa
Ovidio;converte poetando, io non lo nvidio;
width
Come previsto grep vi ha mostrato tutte le righe in cui lui
ha trovato la stringa dio. Attenti all'uso di grep,
perché il programma ha trovato anche i versi in cui dio non è una
parola, ma solo parte di una parola più grande, come oDIO
o inviDIOso.
Ora se noi avessimo una stampante potremmo anche stampare, basta usage
il commando lpr:
-
-
width
$ lpr nome_file_da_stampare
width
quindi volendo stampare il primo Canto della Divina Commedia dovrete
digitare:
-
-
width
quest@medialab:$ lpr canto
quest@medialab:$
width
Next: Anche il file discende
Up: Le operazioni con i
Previous: Cambiamo nome. (mv)
  Contents
angelo
2003-02-09