Ho due file in linux, il primo file ha 4 colonne e il secondo ha 2 colonne. Voglio unire questi file in un nuovo file che ha i primi 3 colonne da file 1 e la prima colonna dal file 2. Ho provato awk, ma i miei dati dal file 2 è stata posta sotto il file 1.Unisci due file in linux con colonna diversa
10
A
risposta
29
paste file1 file2 | awk '{print $1,$2,$3,$5}'
+0
Usa 'awk '{print $ 1", "$ 2", "$ 3}" 'per valori separati da virgole – Dinei
2
Se i file hanno lo stesso numero di righe, si può fare qualcosa di simile:
awk '{ getline v < "file2"; split(v, a); print a[2], $1, $3 }' file1
per stampare colonne 1 e 3 da file 1 e la colonna 2 da file2.
4
Non sono sicuro che le colonne che si desidera da ciascun file, ma qualcosa di simile dovrebbe lavorare:
paste <file1> <file2> | awk '{print $1,$2,$3,$5}'
Le prime tre colonne sarebbero raccolti da file1
, e il quarto saltati, quindi prendere la prima colonna della secondo file.
1
you can try this one without paste command:
awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
awk '{print $2}' file2 >> mergedfile
Sarà davvero d'aiuto se fornisci un esempio dei tuoi file di input e una descrizione di ciò che hai provato fino ad ora. –