Как вы узнали о diff
и comm
, теперь пришло время узнать о другом инструменте в наборе инструментов Unix, join
.
Join выполняет только то, что указывает название, он присоединяетсявместе 2 файла.Способ объединения основан на ключах, встроенных в файл.
Ограничение номер 1 при использовании объединения заключается в том, что данные должны быть отсортированы в обоих файлах в одном столбце.
file1
a abc
b bcd
c cde
file2
a rec1
b rec2
c rec3
join file1 file2
a abc rec1
b bcd rec2
c cde rec3
Вы можете проконсультироваться на странице справки по объединению, чтобы узнать, как уменьшить и изменить порядок столбцов вывода.например
1>join -o 1.1 2.2 file1 file2
a rec1
b rec2
c rec3
Вы можете использовать свой код для ввода имени файла, чтобы превратить его в обобщаемый скрипт.
Ваше решение, использующее конвейер внутри цикла for, будет работать для небольших наборов данных., но по мере увеличения размера данных стоимость запуска нового процесса для каждого слова, которое вы ищете, будет сокращать время выполнения.
Надеюсь, это поможет.