Как добавить столбец из файла в последний столбец другого файла с помощью 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 .

  • Заменить слово после слова с добавочными значениями
  • удалить дублируемую запись из файла1, если запись присутствует в файле2
  • Извлеките и форматируйте данные с помощью `cut` и` awk`
  • Я хочу искать и заменять шаблон
  • Как извлечь несколько данных из файла и сохранить его в файле csv?
  • Ошибка в awk для файлов слияния
  • Как вычесть два раза в оболочке
  • Обнаружение общих строк в двух файлах с использованием 4 полей с использованием awk и UNIX
  • Удалить последний символ из строки, захваченной с помощью awk
  • Как я могу удалить пятое слово каждой строки в файле?
  • Могут ли команды tr быть закодированы, чтобы избежать нескольких tr процессов в конвейере?
  • Linux и Unix - лучшая ОС в мире.