Mam dwa pliki w Linuksie, pierwszy plik ma 4 kolumny, a drugi ma 2 kolumny. Chcę połączyć te pliki do nowego pliku, który ma pierwsze 3 kolumny z pliku 1 i pierwszą kolumnę z pliku 2. starałem awk, ale moje dane z pliku 2 został umieszczony w pliku 1.Scal dwa pliki w Linuksie z inną kolumną
10
A
Odpowiedz
29
paste file1 file2 | awk '{print $1,$2,$3,$5}'
+0
Użyj 'awk '{print $ 1", "$ 2", "$ 3}" 'dla wartości rozdzielonych przecinkami – Dinei
2
Jeśli pliki mają taką samą liczbę wierszy, można zrobić coś takiego:
awk '{ getline v < "file2"; split(v, a); print a[2], $1, $3 }' file1
drukowania colums 1 i 3 z pliku 1 i 2 kolumny z plik2.
4
Nie wiesz, które kolumny chcesz z każdego pliku, ale coś jak to powinno działać:
paste <file1> <file2> | awk '{print $1,$2,$3,$5}'
Pierwsze trzy kolumny będą zbierane od file1
, a czwarty pomijany, a następnie wybrać pierwszą kolumnę z drugi plik.
1
you can try this one without paste command:
awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
awk '{print $2}' file2 >> mergedfile
To naprawdę pomoże, jeśli podasz przykład plików wejściowych, a także opis tego, co dotychczas wypróbowałeś. –