I sistemi operativi Unix mettono a disposizione alcuni comandi utili in molte occasioni, alcuni di questi comandi sono: cat, sort, diff e grep
I comandi di utilità generale in Unix sono:
cat [opzioni] file
Le opzioni per il comando cat sono:
- -n consente di visualizzare un numero progressivo ad ogni riga del contenuto concatenato;
- -b funziona come -n ma non assegna la numerazione alle linee vuote;
- -v mostra anche i caratteri non stampabili (ad eccezione dei caratteri di tabulazione, interruzioni di linea e ritorno a capo).
Ecco un esempio di come concatenare il contenuto di due file e di visualizzarlo (di default) sullo schermo:
Invece di visualizzare la concatenazione sullo schermo, è possibile inserirla in un file (che verrà creato se non esiste) in questo modo:
Se il comando cat riceve un unico file come argomento, stamperà il contenuto del file sullo standard output:
sort [opzioni] file
Il comando tratta ogni linea come un insieme ordinato di campi, separati da opportuni caratteri (di default sono la tabulazione e lo spazio). L’ordinamento avviene in base al primo campo ed è alfabetico. Le opzioni che possono essere applicate al comando sort:
- -f consente di ignorare le differenze tra le lettere minuscole e maiuscole (case insensitive);
- -n per considera la chiave di ordinamento di tipo numerico anziché testuale ;
- -r per ordinare in senso decrescente anziché crescente;
- -o viene utilizzato per inviare l’output al fileout anziché sull’output standard;
- -t s utiliza “em>s” come separatore di campo;
- -k s1,s2 usa i campi specificati come chiavi di ordinamento.
Ecco un esempio di come ordinare le linee del file in base al valore del tempo campo in /etc/passwd:
diff [opzioni] [file...]
Alcune opzioni:
- -l fornisce maggiori informazioni;
- s consente di visualizzare un messaggio se i due file sono identici (di default non viene mostrato nessun messaggio);
- -b ignora i caratteri “bianchi” come tab e spazi;
- -i rende il confronto case insensitive (maiuscole e minuscole identiche);
- -r effettua il confronto anche su directory e sotto directory.
Il risultato del confronto dei file viene emesso di default attraverso lo standard output:
grep [opzioni] pattern [nomefile]
Il pattern è una espressione regolare, le righe che corrispondono al pattern saranno visualizzate. Ecco alcune opzioni del comando grep:
- v restituisce le linee che non rispettano il pattern;
- w restituisce solo le linee che rispettano il pattern come parola completa;
- x restituisce solo le linee che coincidono rispettano il pattern;
- c visualizza il numero della occorrenze delle stringhe che rispettano il pattern;
- i rende il pattern case insensitive.
Ecco una lista dei metacaratteri che possono essere utilizzati per la ricerca:
- ^ viene utilizzato per indicare l’inizio della linea;
- $ indica alla fine della linea;
- \< serve per fare riferimento all’inizio di una parola;
- \> serve per fare riferimento alla fine di una parola;
- . indica un singolo carattere qualsiasi;
- [stringa] viene utilizzato per indicare un qualunque carattere in stringa;
- [~stringa] per indicare un qualunque carattere non presente nella stringa;
- [c0-c1] inidica un qualunque carattere compreso tra il carattere c0 e il carattere c1 (ad esempio tra a e d);
- \c0 inibisce l’interpretazione del carattere indicato.
Per ricercare una parola all’interno di un file, ad esempio la parola datrevo nel file myFile, scriveremo:
Senza l’attributo w la parola verrà cercata anche come sottostringa:
Per cercare le righe che finiscono con la lettere a tramite il flag $:
Per cercare in tutti i file della directory corrente la stringa “datrevo”:
Ecco l’indice degli articoli sui comandi Unix: