Tylko z awkpoleceniem:
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, f1i na końcu wydrukuj pola trzecie ( $3) i czwarte ( ) $3z 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 awki 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 ( NFjest indeksem ostatniego pola i $NFcią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 awki paste(opcja B)
To polecenie jest również takie samo jak powyżej ( $3i $4wskazuje na trzecie i czwarte pole każdej linii z pliku1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Lub inne rozwiązanie z cutpoleceniem:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
polecenie cut w powyższym poleceniu najpierw wytnij pierwsze pole ( -f1indeksowane 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).