Объединение двух файлов в столбцы

Я хочу добавить 6 полей File2 в последнее поле File1, я использую следующую команду, но не могу получить выход.

awk 'FNR==NR{a[$1]=$6; next} {print $0,a[$1]}' File2 File1

File1:

 zehriscollection.co.uk,IPAddress,hqfmqxvm,noor82@gmail.com,2015-06-06 16:34,home,8000,4,Professional Linux Based,paper_lantern,root,Hostname,1433590496,4212,8192000 zindagidesire.com,IPAddress,hgchcjhcj,saeed@gmail.com,2015-08-19 18:16,home,8000,107,Professional Linux Based,paper_lantern,root,Hostname,1439990214,110126,8192000 zobasra.co.uk,IPAddress,egranius,"donot@hotmail.com, w@live.com",2013-11-30 19:07,home,3072,4,Standard,x3,root,Hostname,1385820470,4208,3145728 

File2:

 zehriscollection.co.uk hqfmqxvm Usage: 4.02M Inodes: 275 zindagidesire.com hgchcjhcj Usage: 107.19M Inodes: 4765 zobasra.co.uk egranius Usage: 4.02M Inodes: 390 

Что я хочу получить:

 zehriscollection.co.uk,IPAddress,hqfmqxvm,noor82@gmail.com,2015-06-06 16:34,home,8000,4,Professional Linux Based,paper_lantern,root,Hostname,1433590496,4212,8192000,275 zindagidesire.com,IPAddress,hgchcjhcj,saeed@gmail.com,2015-08-19 18:16,home,8000,107,Professional Linux Based,paper_lantern,root,Hostname,1439990214,110126,8192000,4765 zobasra.co.uk,IPAddress,egranius,"donot@hotmail.com, w@live.com",2013-11-30 19:07,home,3072,4,Standard,x3,root,Hostname,1385820470,4208,3145728,390 

2 Solutions collect form web for “Объединение двух файлов в столбцы”

Это делает работу:

 awk '{print $6}' File2 | paste -d ',' File1 - 

В конце – стандартный ввод, который подается через awk.

EDIT: когда вам нужно убедиться, что имена доменов совпадают в файлах, вы можете сделать это с помощью join вместо paste .

Например, например:

 sort File2 | awk '{print $1,",",$6}' | sed 's/ //g' | join -t ',' File1 - 

Один из способов использования функции split :

 awk 'FNR==NR{a[$1]=$6; next} {split($0, b, ","); u=b[1]; if (u in a) {$0=$0","a[u]}} 1' file2 file1 

Он сохраняет 6-е поле из file2 в a[1st field] затем для каждой строки file1 он разбивает его на запятую на массив b и присваивает первому элементу b[1] значение u . Если u находится в a он добавляет к строке запятую и a[u] . Финал 1 печатает каждую строку file1 , был ли он изменен или нет.

  • Как выводить несколько строк с использованием одного условия?
  • Как захватить номер порта из этого выхода `lsof -F`, используя awk (или что-то лучше)?
  • awk вызывает утечку памяти?
  • Синхронизировать столбцы двух матриц
  • использовать awk для замены скобок?
  • Замените столбец и сохраните интервал
  • Поиск на основе абзаца с использованием до и после условий UNIX KSH
  • Удалите строки в упрощенном файле csv (одна новая строка в строке) на основе определенного значения столбца
  • Используйте awk для подсчета количества / bin / false записей в файле в поле7 с помощью одной команды для общего подсчета
  • Как я могу получить awk для печати как совпадений, так и несоответствий?
  • Печать строки после n-го появления совпадения
  • Interesting Posts

    Декодирование «prog> file 2> & 1"

    Как узнать, сколько блоков у меня есть в моей файловой системе?

    Аутентификация PAM и SSH-доступ на основе информации о пользователе, хранящейся в sqlite3

    Поиск всех файлов .cpp и .h и их перемещение в ~ / мусор

    Как установить разные обои для каждого экрана из командной строки в Gnome3?

    Является ли dockerfile yum использующим репозитории yum хоста?

    Как добавить системный вызов в linux kernel 4.x

    Почему я получаю разные результаты с тем же пользователем и командой history?

    фиксация / dev / ttyUSB

    Какой самый быстрый способ создать текстовый файл объемом 1 ГБ, содержащий случайные цифры?

    Почему я получаю эту ошибку в Swan-Cygwin?

    После перезагрузки хост переходит в режим обслуживания, так как у меня есть удаленные файловые системы в стек LVM, созданные через LUNs iSCSI – RHEL 7.x

    Использование только одного ядра процессора

    Среди полей вывода команды «ps»% CPU не является фактическим использованием ЦП в этом процессе?

    Преобразование каталога в файл или файл в каталог

    Linux и Unix - лучшая ОС в мире.