С единственной 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) снова.