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.

Estrarre un campo da un file

Archiviato in: shell — olaolaonline 5 Gennaio 2008 @ 20:37

Volete estrarre uno o piu’ campi da un file? Conosco due metodi per farlo, ma sicuramente ve ne saranno numerosi altri (potenza di linux :)).
Il primo fa uso del comando cut e va’ usato cosi’

cut -d" " -f2 nome_file

.
Questo comando estrae il secondo campo da ogni riga del file indicato. L’opzione -d” “ indica a cut di usare lo spazio come delimitatore dei campi, secondo me piu’ utile, altrimenti viene usato il carattere tab. Il campo -f indica il numero o il range (es. 2-3) dei campi da estrarre.

Altrimenti si puo’ usare un micro script awk

awk ‘{print $2}’ nome_file

.
In questo caso non e’ possibile indicare un range di campi, ma solo una lista. Di contro, awk riconosce come delimitatore sia gli spazi che le tabulazioni.