С единственной awk
командой:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Получите строку из file1 и сохраните ее в локальной переменной f1
, затем напечатайте строку, которая была сохранена в, f1
и, наконец, напечатайте третье ( $3
) и forward ( $3
) поля из file1, которые разделены запятой ,
, и измените OFS (разделитель выходного поля [пробел по по умолчанию]) до запятой ( ,
).
Короткая команда будет такой:
paste -d, file2 <(cut -d, -f3- file1)
А, В, С, D
А, В, С, D
А, В, С, D
А, В, С, D
вставьте файл2, затем вырежьте и вставьте третий столбец в следующий ( -f3-
) из файла1.
С awk
и paste
(вариант А)
Команда ниже также копирует последние два столбца ( C,D
) из файла file1 в конце каждой строки в файле file2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Выше команды вставьте содержимое file2, затем напечатайте запятую delimiter ( -d','
), затем вставьте два последних поля ( NF
это индекс последнего поля и $NF
является строкой, которой является его индекс NF
. Так же $(NF-1)
как и второе поле перед последним полем) из file1, когда эти индексы переопределяются или разделяется с запятой зрителя ( -F','
).
С awk
и paste
(вариант Б)
Эта команда также является такой же, как указано выше ( $3
и $4
указывает на третье и четвертое поле каждой строки из file1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Или другое решение с cut
командой:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
Команда cut в приведенной выше команде сначала вырезает первое поле ( -f1
индексируемое с помощью разделителя запятых ( -d.
)) из file1 ( cut -d, -f1 file1
), затем вырезает и вставляет второе поле file2 ( cut -d, -f2 file2
) и, наконец, вырезает и вставляет третий столбец ( -f3
) в nexts ( -
) из file1 ( cut -d, -f3- file1
) снова.
Эта команда также возвращает тот же результат:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
вставьте второе поле из file1 ( awk -F',' '{print $1}' file1
), затем напечатайте запятую ( -d,
), затем вставьте второй столбец из file2 ( awk -F',' '{print $2}' file2
), наконец, вставьте второй и последний столбец file1 ( awk -F',' '{print $3","$4}' file1
) снова.