join
Объединение
отсортированных файлов (POSIX)
Синтаксис:
join [-1 n]
[-2 n]
[-a номер_файла]
[-e строка]
[-j номер_файла
n]
[-o список]
[-t символ] [-v номер_файла]
файл1
файл2
Поддерживаемые платформы:
Neutrino
Опции:
Для опций -a, -j и -v используется аргумент номер_файла. Следует ввести 1 для файла файл1 или 2 для файла файл2.
-1 n
(Единица.) Объединить по n-ному
полю файла, указанного в аргументе файл1. Нумерация полей
начинается с 1.
-2 n
Объединить по n-ному
полю файла, указанного в аргументе файл2. Нумерация полей
начинается с 1.
-a номер_файла
В
дополнение к выходным данным по умолчанию вывести строку для
каждой непарной строки в файле с номером, указанным в аргументе
номер_файла. Если указаны обе опции -a 1 и -a 2, будут выведены оба набора
данных. При этом данные для -a 2 всегда выводятся в первую
очередь.
-e строка
Заменить пустые поля в
выходных данных строкой, указанной в аргументе строка.
-j номер_файла n
(Выходит
из употребления.) Объединить по n-ному полю файла, указанного в аргументе номер_файла. Если значением аргумента номер_файла не является значение 1 или 2 (например, -j 0 3), в обоих файлах следует
использовать n-ное
поле. Нумерация полей начинается с 1.
Вместо опции -j следует использовать опции -1 и - 2.
-o список
Вывести
данные, в которых в каждой строке содержатся поля, указанные в
списке список. Для записей в списке список
используется следующий формат:
номер_файла.поле
где
значение аргумента поле определяет номер поля. В
качестве разделителя между записями можно использовать пробел
или запятую.
Выходные данные
записываются только для строк с совпадающими полями объединения.
Запись полей объединения, не входящих в список, не
выполняется.
-t символ
Использовать
указанный
символ в качестве разделителя для
входных и выходных данных. Учитывается каждый символ в строке. Если эта опция
указана, то последовательность упорядочения должна совпадать с
последовательностью, создаваемой при выполнении утилиты sort без опции -b.
-v номер_файла
Вместо выходных данных по
умолчанию вывести строки только для каждой непарной строки в файле
номер_файла.
файл1 файл2
Имена
текстовых файлов. Если в качестве значения аргумента файл1 или файл2 указан символ -, используется стандартный
поток ввода.
Описание:
Утилита join формирует "результат
соединения" двух отношений, определяемых строками файлов файл1 и файл2. Этот результат записывается в стандартный поток
вывода.
Файлы файл1 и файл2 сравниваются по "полю объединения", находящемуся
в обоих файлах. Для каждой пары строк в файлах файл1 и файл2, в которых есть идентичные поля объединения,
утилита join выводит одну строку вывода. Обычно строка вывода состоит
из поля объединения, за которым указывается остальная часть
строки из файла файл1, а затем остальная часть
строки из файла файл2. По умолчанию полем
объединения является первое поле в каждой строке.
В файлах файл1 и файл2 должна быть выполнена сортировка по полям
объединения в соответствии с последовательностью упорядочения по
возрастанию (т.е. идентично последовательности, обеспечиваемой
утилитой sort -b). В противном случае вывод данных о совпадении
некоторых полей может быть невозможен. Следует отметить, что
если указана опция -t, то последовательность
упорядочения должна совпадать с последовательностью, создаваемой
при выполнении утилиты sort без опции -b.
По умолчанию в качестве
разделителей полей используются пробелы. В этом случае несколько
последовательных разделителей полей рассматриваются как один
разделитель, а разделители, указанные в начале строки,
игнорируются. По умолчанию в качестве разделителя полей в
выходных данных используется пробел.
Примеры:
Объединение файла паролей и
файла групп с сопоставлением числового идентификатора группы и
выводом имени входа в систему, имени группы и начального
каталога. Предполагается, что файлы были отсортированы в
соответствии с последовательностью упорядочения по полям
идентификатора группы.
join -1 4 -2 3 -o 1.1 2.1 1.6 -t:
/etc/passwd /etc/group
Статус завершения:
0
Все входные файлы выведены
успешно.
>0
Возникла ошибка.