Сравните 1-й столбец 1-го файла и 2-й столбец второго файла и получите результат следующим образом

Файл1: файл Excel (.xls)

UN ID St M1 M2 SE DOF PV PA FC 17127159 0 -5.9 297.3 765.7 0.22 4 0.003 0.00389231 2.57536 17127163 2 -3.87 189.914 492.307 0.3548 4 0.0179 0.01795 2.59226 17127167 4 -3.8908 339.136 855.276 0.3429 4 0.0176 0.017 2.52192 17127171 6 -3.922 390.44 986.365 0.340 4 0.0172179 0.01721 2.52627 17127175 8 -4.715 536.072 1210.65 0.2492 4 0.00920158 0.00920 2.258 

Файл2: текстовый файл (.txt)

 UNIT_ID UN TID XE GG7 JO 0 17127159 16657436 353.568 335.295 221.717 815.654 684.85 1 17127161 16657436 11.0842 7.01459 7.33511 11.2121 12.6268 2 17127163 16657450 221.647 226.774 136.274 431.32 392.533 3 17127165 16657452 5.02182 3.41172 4.12834 6.90306 4.91183 

Если 1-й столбец 1-го файла совпадает со вторым столбцом второго файла, результат должен выглядеть следующим образом:

 UN FC TID XE GG7 JO 17127159 2.57536 16657436 353.568 335.295 221.717 815.654 684.85 17127163 2.59226 16657450 221.647 226.774 136.274 431.32 392.533 

Заранее спасибо.

2 Solutions collect form web for “Сравните 1-й столбец 1-го файла и 2-й столбец второго файла и получите результат следующим образом”

С awk :

 $ awk 'NR==FNR{a[$2]=$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8; next} { if($1 in a){ print $1,$10,a[$1] } }' file2 file1 UN FC TID XE GG7 JO 17127159 2.57536 16657436 353.568 335.295 221.717 815.654 684.85 17127163 2.59226 16657450 221.647 226.774 136.274 431.32 392.533 

Если интервал важен (это не для большинства программ, но может быть для людей), вы можете сделать:

 $ awk 'NR==FNR{ a[$2]=sprintf("%-10s%-10s%-10s%-10s%-10s%-10s",$3,$4,$5,$6,$7,$8); next; } { if($1 in a){ printf("%-10s%-10s%10s\n", $1,$10,a[$1]) } }' file2 file1 UN FC TID XE GG7 JO 17127159 2.57536 16657436 353.568 335.295 221.717 815.654 684.85 17127163 2.59226 16657450 221.647 226.774 136.274 431.32 392.533 

вот что-то, что может помочь вам попытаться найти больше в Интернете …

 awk 'FNR==NR{a[$2]=$3;next}{print $0,a[$2]?a[$2]:"NA"}' file2 file1 
  • Совпадение нескольких шаблонов awk и печать в одной строке
  • Как повернуть данные по awk в сценарии оболочки unix?
  • Как печатать строки между шаблоном 1 и 2-м совпадением шаблона2?
  • Как я могу оптимизировать эту команду Unix?
  • Как получить последние три последние даты файла журнала?
  • Как использовать Ternary Operator в awk для записи в файл?
  • Как я могу оперировать \ 1 в sed (или $ 1 в awk)?
  • печатать только строки, где первый столбец уникален
  • Почему число округлено по ssh?
  • Как распечатать конкретный столбец в файл, если условие видно в нескольких файлах?
  • файлы списка tar, перерыв в первом файле
  • Interesting Posts

    Добавить 'install selected .deb files' как команду в действиях Nautilus

    FreeBSD: «Слишком много открытых файлов», но должно быть в состоянии открыть еще 160 000 файлов

    Неожиданная ошибка EOF и синтаксиса

    Как удалить код возврата из подсказки терминала в Sugar на Stick?

    Проблемы с составлением VASP

    Отправлять обновление ping в службы ping в Terminal?

    Не удалось успешно форматировать флеш-накопитель 64G USB на centos 6.2 / centos 6.3

    Как удалить определенные ключи из списка слов?

    Статическая маршрутизация Linux: Ping для частной сети (прилагается сетевая диаграмма)

    Какую команду iptables нужно разрешить трафик веб-сервера?

    Как скопировать файл журнала по времени?

    Загрузочный загрузчик XEN Bootloader или Kernel не является исполняемым / не может найти ядро ​​при использовании XM create

    Как запускать локальные (не shell-скрипты) сценарии на удаленном хосте через SSH?

    Постоянно включить scl для RHEL6 RedHat

    DNSCrypt, похоже, не шифрует запросы

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