Как добавить столбец из файла в последний столбец другого файла с помощью awk?

Я хочу добавить второй столбец file2 в file1 , который содержит число неизвестного числа столбцов, поэтому став последним столбцом file1 . В этой цели я попытался создать file3 составленный путем вставки file1 и только второго столбца file2 :

file1 :

 col11 col12 col13 ... col1n 

file2 :

 col21 col22 col23 ... col2m 

новый file1 или file3 :

 col11 col12 ... col1n col22 

Я использую команду:

 awk '{ print $0 > "file3"; getline<"file2"; print $2 > "file3" }' file1 & 

но аргументы col22 вместо формирования последнего столбца нового файла будут идти по новой строке.

Кто-то может помочь мне найти и исправить ошибку, а также найти более эффективное решение?
Моя операционная система – fedora12.

2 Solutions collect form web for “Как добавить столбец из файла в последний столбец другого файла с помощью awk?”

 awk '{f1 = $0; getline<"file2"; print f1, $2}' < file1 > file3 

Выходной файл будет иметь такое же количество строк, что и file1 , поэтому последний столбец будет пуст для последних строк, если file2 короче, а последние значения в file2 будут проигнорированы, если он длиннее.

Как вариант, предложенный Костасом:

 awk '{getline f1 <"file1" ; print f1,$2}' < file2 > file3 

В то же время file3 будет иметь такое же количество строк, что и file2 . Это означает, что порядок столбцов будет затронут, если file2 больше, чем file1 .

С:

 awk '{print $2}' < file2 | paste file1 - > file3 

file3 будет иметь такое же количество строк, что и самые большие file1 и file2 . Никакие данные не будут отброшены, но, как указано выше, если file2 длиннее file1 , последние строки в file3 будут иметь данные file2 в столбце первая / вторая.

Пытаться

 $ awk 'NR==FNR{a[NR]=$2;next}{print $0,a[FNR]}' file2 file1 col11 col12 col13 ... col1n col22 

Часть {a[NR]=$2;next} будет выполнена только для первого файла в списке ( file2 ), а когда awk обрабатывает второй файл ( file1 ), мы печатаем всю строку file1 и добавляем элемент таблицы a[FNR] который содержит значение второго поля file2 .

  • Как напечатать строку в конце строки с помощью awk?
  • AWK - изменение имени файла (специальные символы)
  • удаление первого и последнего символов каждой строки из командной строки
  • Как выбрать идентификаторы работы с помощью grep / sed / awk
  • Bash / Linux Инструменты для исправления xml
  • Условие Awk вместе с заголовком
  • Используйте sed для поиска и сохранения только строк с двумя альфа-символами в них
  • Поиск совпадений между двумя столбцами разных файлов и печать его в другом столбце
  • Как напечатать определенные поля, если выполнено условие
  • Вам нужно сравнить два файла и распечатать все столбцы, а затем отобразить как NA, а затем присоединиться к другому файлу
  • Как извлечь XML из текстового файла
  • Linux и Unix - лучшая ОС в мире.