0% found this document useful (0 votes)
8 views16 pages

04-Gestione File

Gestione file macchine Unix
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views16 pages

04-Gestione File

Gestione file macchine Unix
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Gestione avanzata dei file

Espressioni jolly

 * qualunque insieme di caratteri


 ? un solo carattere qualunque
 ^ nega l'espressione seguente
 [ ] carattere singolo in un range di caratteri
possibili
 [a-c] le lettere a, b, c
 [a-zA-Z] tutte le lettere maiuscole e minuscole
Comandi avanzati per la gestione
dei file
 file permette di vedere il tipo di file
 cut “taglia” un file per colonne
 paste unisce le colonne di uno o più file
 join un paste più potente
 split divide i file
 grep cerca un espressione in un file
 sort per ordinare un file
Comandi avanzati per la gestione
dei file
 head mostra le prime righe di un file
 tail mostra le ultime righe di un file
 wc conteggia lettere, parole e byte
 diff compara due file o due cartelle
 cmp compara due file
 od visualizzatore esadecimale
 sed editor di flusso
 awk linguaggio per elaborazione testi
head, tail, split

● #head -n num file


● #tail -n num file
● Numero righe di default 10
● Se si usa un numero negativo?
● #split opzioni file
● -a numero di caratteri per il suffisso
● -b dimensione massima in byte (KB, MB)
● -l dimensione massima in linee di testo
sort
● sort opzioni file
● -c verifica l'ordinamento
● -o file output su file
● -u elimina le linee duplicate
● -f non distingue maiuscole e minuscole
● -r ordinamento inverso
● -n (-g) ordine numerico
● -k chiavi per l'ordinamento
● -b ignora gli spazi bianchi
● -t delimitatore
wc

● wc conta righe, caratteri, parole (stringhe


separate da uno o più spazi) e byte di un file
● -l conta le linee
● -w conta le parole
● -c conta i byte
● -m conta i caratteri

● L'opzione di default è -lwc


cut, paste
● cut
● -b byte
● -c caratteri
● -f campi
– Es.:
● #cut -c -3,8-10,40,42,50- nomefile
● -d specifica il delimitatore

● paste
● -d specifica il delimitatore
– Es:
● #paste -d “ “ file1 file2
join

● #join [ -1 campo1 ] [ -2 campo2 ] file1 file2


● -a filenumber aggiunge anche le linee non corrispondenti
● -v filenumber solo le linee non corrispondenti del file filenumber
● -1 campo1 specifica il campo da considerare per file1
● -2 campo2 specifica il campo per il fìle2
● -o list specifica i campi da stampare
● -t delimitatore specifica il delimitatore

● Es: #join -t “;“ -1 2 -2 3 file1 file2

● N.B.: i campi da collegare devono essere


ordinati con sort -b
diff, cmp
● #cmp opzioni file1 file2
● -l elenca le differenze con posizione (in byte) e
valori dei due byte nei rispettivi file.
● -s output silente in caso di differenze
● #diff opzioni file1 file2
● -b (-w) ignora gli spazi bianchi
● -i ignora maiuscole, minuscole
● -r ricorsivo (per confronto tra cartelle)
● -s non riporta i nomi di file differenti
sed, awk

● Qui trattiamo solo un paio di esempi per ciascuno


di questi due comandi/linguaggi
● #awk '{ if($7<0.5) print NR,$5,$6}' ppp
– Stampa, dal file "ppp", un intero progressivo, le colonne $5
e $6, ma solo dalle righe che verificano la condizione:
colonna 7<0.5

● #sed s/testo1/testo2/g nomefile


– Sostituisce la stringa testo1 con la stringa testo2 in tutto il
file nomefile
od
● Octal Dump permette di vedere anche file con
caratteri non ASCII, come file binari.
● -c output in caratteri
● -x output in esadecimale
● #od -xc /sbin/ifconfig | head
grep
 egrep = grep -E grep con espressioni regolari
 fgrep = grep -F grep “rapido”
 Opzioni
 -c solo conteggio righe output
 -n scrive il numero di riga
 -v nega la corrispondenza
 -x solo righe che corrispondono interamente
 -l solo i nomi dei file
 -i ignora maiuscole/minuscole
 -h non scrive il nome del file
grep

● Es.:
● grep root /etc/group
● Cerca root nel file dei gruppi

● grep -v root /etc/group


● Cerca le linee senza root nel file dei gruppi

● grep -n root /etc/passwd


● Riporta anche il numero di riga dove ha trovato “root”
Espressioni regolari (opzionale)
 Un'espressione regolare è un modello che
descrive un insieme di stringhe
 Purtroppo, nonstante le specifiche POSIX ci
sono molte implementazioni.
 . un solo carattere qualunque
 ^ inizio di una riga
 $ fine di una riga
 [] elenco di caratteri
 [aeiou] trova una vocale
 [0-9] trova un numero tra 0 e 9
 [0-9a-z] trova un numero o un carattere minuscolo
 ^ nega l'elenco
Espressioni regolari (opzionale)
 \< inizio di una “parola”
 \> fine di una “parola”
 ? estende la ricerca anche a 0 occorrenze
 * estende la ricerca a molte occorrenze
 Esempi:
 a.?c ac, abc, acc corrispondono, ma non abec
 a.c abc, acc, ma non ac
 a*c ac, aac, aaac, aaaaac

 {n} estende la ricerca a n occorrenze esatte

You might also like