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.
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.