Aggiungere numeri di linea ad un file

Archiviato in: manipolazione file — olaolaonline 30 giugno 2009 @ 16:20

Puo’ capitare di voler numerare le righe di un file, come si faceva una volta nei listati dei codici di programmazione.

Il primo modo che mi viene in mente è quello di utilizzare un piccolo script awk

awk ‘{print NR, $0}’ nomefile

Ancora piu’ veloce pero’ e’ utilizzare il comando nl

nl nomefile

Se vogliamo numerare anche le righe vuote, come nel caso del awk, allora basta aggiungere l’opzione -ba.

Invertire il contenuto di un file

Archiviato in: manipolazione file — olaolaonline 20 novembre 2008 @ 23:44

Altro utilissimo comando!!!

Non vi capita tutti i giorni di dover invertire l’ordine delle righe di un file? Bene, se per visualizzare il contenuto di un file nella console usiamo il comando cat, per visualizzarne il contenuto ma in ordine inverso non dobbiamo far altro che usare il comando tac.

Quindi se il file contiene

cat nomefile
Prima riga
Seconda riga
3a riga

il risultato invertito sarà

tac nomefile
3a riga
Seconda riga
Prima riga

Semplice? Semplicissimo!

Convertire un file in formato DOS

Archiviato in: manipolazione file — olaolaonline 5 settembre 2008 @ 20:53

Forse non tutti sanno che i file di testo creati sotto DOS/Windows hanno come terminatore di riga l’accoppiata di caratteri speciali CR/LF (carriage return/line feed o anche \r\n).

Linux e piu’ in generale i sistemi Unix invece utilizzano in solo carattere LF. Per questo quando si copia un file di testo da una macchina Windows si hanno problemi di visualizzazione.

Per risolvere il problema basta applicare al file il comando dos2unix.

dos2unix nomefile

Tale comando in genere non e’ compreso nelle installazioni base ed e’ contenuto in pacchetti che hanno nome diverso nelle varie distribuzioni linux. Credo pero’ che non dovrebbe mancare nella nostra linux box.

Affiancare due o piu’ file

Archiviato in: manipolazione file — olaolaonline 31 gennaio 2008 @ 18:38

Se stiamo lavorando su due o piu’ file contenenti, ad esempio, delle colonne di dati e volessimo creare un unico file con tutti i dati di origine ci basta utilizzare il comando paste.

paste -d" " file1 file2 file3…

In questo modo verra’ mostrato a schermo il contento, ma possiamo sempre reindirizzarlo su un altro file. L’opzione -d permette di specificare quale carattere utilizzare per delimitare i due file, in questo caso uno spazio.
Ad esempio se il file nomi.txt contiene

Mario
Pinco
Giulio

ed il file cognomi.txt contiene

Rossi
Pallino
Cesare

il risultato sara’

Mario Rossi
Pinco Pallino
Giulio Cesare

Nel caso i due file abbiamo lunghezza diversa il comando funziona ugualmente ma si dovra’ prestare attenzione al risultato ottenuto.