Ho un file con due colonne comeCome aggiungere una colonna da un file a un altro file
1 1
2 3
3 4
e un file con una colonna come
6
7
9
vorrei aggiungere il secondo file nel primo. L'output dovrebbe essere:
1 1 6
2 3 7
3 4 9
Ho un file con due colonne comeCome aggiungere una colonna da un file a un altro file
1 1
2 3
3 4
e un file con una colonna come
6
7
9
vorrei aggiungere il secondo file nel primo. L'output dovrebbe essere:
1 1 6
2 3 7
3 4 9
$ pr -mts' ' file1 file2
1 1 6
2 3 7
3 4 9
$ paste -d' ' file1 file2
1 1 6
2 3 7
3 4 9
awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2
Nota: Lavoreranno con i file di uguale lunghezza. Se le lunghezze dei file 'sono diverse, vai con la soluzione sudo_O's.
Solo per il gusto di farlo, qui è un comando awk
che penso dovrebbe simulare paste
. Puramente per divertimento, però, se fossi in te sarei ancora andare con sudo_O's soluzione (o non può essere!)
awk 'NR==FNR{a[++y]=$0;next}{b[++x]=$0}
END{z=x>y?x:y;while(++i<=z){print a[i],b[i]}}' file1 file2
Una pura bash soluzione può essere:
exec 3<twofile
while read x; do read -u 3 y; echo $x $y; done <onefile
Infiles:
cat >onefile <<XXX
1 1
2 3
3 4
XXX
cat >twofile <<XXX
6
7
9
XXX
uscita:
1 1 6
2 3 7
3 4 9
Il 'paste' di base senza parametro' -d' dovrebbe funzionare, suppongo. – fedorqui
@fedorqui il delimitatore predefinito con 'incolla' è una scheda. –
Aaaah che vedo. +1 per questo! – fedorqui