У меня есть 2 текстовых файла, например, file1 и file2 file1 имеет столбец A, в котором есть список идентификаторов, например, ID1, ID2, ID3. Каждый идентификатор имеет несколько детей, например, ID1 имеет child1, child2, child3; У ID2 есть child4, child5 и так далее ... ID каждого ребенка уникален. У file2 есть столбец B, в котором есть список, если все childX определены в file1 вместе с другими атрибутами, например, location и т. д. Задача состоит в том, чтобы найти соответствие между идентификатором из file1 и дочерним идентификатором из file2. Другими словами, пользователь хочет знать, что, просматривая файл file2 и видя только дочерний идентификатор, идентификаторы которого из файла file1 были получены ... Извините, если это немного громоздко. Мой вопрос: я понимаю, что это может быть сделано программно, например, с использованием python и т.д. Но могу ли я использовать любую утилиту Unix, например, cygwin, такую как grep или diff или т.д., Чтобы сделать это отображение? Спасибо PS. Дело в том, что это можно сделать без сценариев ... но просто запустив какую-нибудь утилиту Unix. Задача звучит для меня как получение данных путем объединения двух таблиц.
1 ответ
0
Пакет cygwin coreutils предоставляет команду join
.
Как сообщается на
https://www.gnu.org/software/coreutils/manual/html_node/join-invocation.html#join-invocation
присоединиться: объединить строки в общем поле
объединение записывает в стандартный вывод строку для каждой пары входных строк, имеющих одинаковые поля объединения. Сводка:
join [option]… file1 file2
Файл1 или файл2 (но не оба) могут иметь значение «-», что означает стандартный ввод. file1 и file2 должны быть отсортированы по полям соединения.
см. ссылку или справочную страницу для полного использования.