Tylko z awk
poleceniem:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Pobierz wiersz z pliku 1 i zapisz go w zmiennej lokalnej f1
, a następnie wydrukuj wiersz, który jest zapisany, f1
i na końcu wydrukuj pola trzecie ( $3
) i czwarte ( ) $3
z pliku 1, które są rozdzielone przecinkiem ,
, i zmień OFS (separator pól wyjściowych [spacja przez default]) do przecinka ( ,
).
Krótkie polecenie wyglądałoby tak:
paste -d, file2 <(cut -d, -f3- file1)
A, B, C, D
A, B, C, D
A, B, C, D
A, B, C, D
wklej plik2, a następnie wytnij i wklej trzecią kolumnę do następnej ( -f3-
) z pliku1.
Z awk
i paste
(opcja A)
Poniższe polecenie kopiuje również dwie ostatnie kolumny ( C,D
) z pliku1 na końcu każdej linii w pliku2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Powyższe polecenie wklej zawartość pliku 2, następnie wydrukuj separator przecinka ( -d','
), a następnie wklej dwa ostatnie pole ( NF
jest indeksem ostatniego pola i $NF
ciągiem, którego jest indeksem NF
. Podobnie $(NF-1)
jak drugie pole przed ostatnim polem) z pliku 1, gdy indeks ten redefiniuje lub dzieli za pomocą przecinka ( -F','
).
Z awk
i paste
(opcja B)
To polecenie jest również takie samo jak powyżej ( $3
i $4
wskazuje na trzecie i czwarte pole każdej linii z pliku1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Lub inne rozwiązanie z cut
poleceniem:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
polecenie cut w powyższym poleceniu najpierw wytnij pierwsze pole ( -f1
indeksowane przecinkiem ( -d.
)) z file1 ( cut -d, -f1 file1
), następnie wytnij i wklej drugie pole file2 ( cut -d, -f2 file2
), a na koniec wytnij i wklej trzecią kolumnę ( -f3
) do następnej ( -
) z pliku1 ( cut -d, -f3- file1
) ponownie.
To polecenie zwraca również ten sam wynik:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
wklej drugie pole z pliku1 ( awk -F',' '{print $1}' file1
), następnie wydrukuj przecinek ( -d,
), następnie wklej drugą kolumnę z pliku2 ( awk -F',' '{print $2}' file2
), w końcu wklej ponownie drugą i ostatnią kolumnę pliku1 ( awk -F',' '{print $3","$4}' file1
).