JOIN(1)
НАЗВАНИЕ
join - оператор реляционной базы данных
СИНТАКСИС
join [-aномер_файла] [-eцепочка_символов] [-j[номер_файла] номер_поля]
[-o список] [-tсимвол] файл1 файл2
ОПИСАНИЕ
Команда join выдает на стандартный вывод результат соединения двух отношений, задаваемых строками файла1 и
файла2. Если вместо файла1 стоит -, то используется
стандартный ввод.
Отношения файл1 и файл2 должны быть отсортированы в
возрастающем лексикографическом порядке [см. sort(1)],
согласно кодировке ASCII, по полям соединения (обычно
по первому полю в каждой строке).
Результат операции составляют строки, по одной для каждой пары строк из отношений файл1 и файл2, которые имеют одинаковые поля соединения. Обычно строка результата
состоит из общего поля, затем остатка строки отношения
файл1, затем остатка строки отношения файл2.
Как правило, поля разделяются символами пробела, табуляции или перевода строки. В этом случае несколько последовательных разделителей интерпретируются как один и
начальные разделители отбрасываются. Подразумеваемым
разделителем при выводе информации является пробел.
Допустимы следующие опции:
- -aномер_файла
- В дополнение к обычному выводу выдать строку для
каждой непарной строки из файла с указанным номером (1 или 2).
- -eцепочка_символов
- Заменить пустые поля вывода заданной цепочкой_символов.
- -j[номер_файла] номер_поля
- Произвести соединение по указанному полю для файла
с заданным номером. Если номер_файла опущен, использовать указанное поле в обоих файлах.
- -o список
- Каждую строку вывода обрамлять полями, определенными в списке. Каждый элемент списка имеет вид номер_файла.номер_поля.
- -tсимвол
- Использовать символ в качестве разделителя. Каждое
вхождение символа в строку значимо. Указанный символ используется как разделитель и при вводе, и при выводе.
ПРИМЕР
Следующая командная строка выполняет соединение файла
паролей и файла групп, сравнивая числовой идентификатор
группы, и выдает входное имя, имя группы и основной каталог. Предполагается, что оба файла отсортированы в
порядке возрастания идентификаторов групп.
join -j1 4 -j2 3 -o 1.1 2.1 1.6 -t: /etc/passwd \ /etc/group
СМ. ТАКЖЕ
awk(1), comm(1), sort(1), uniq(1).
СЮРПРИЗЫ
В случае стандартных разделителей полей последовательность упорядочения такая же, как в команде sort -b, то
есть начальные пробелы игнорируются. Если задана опция
-t, все символы являются значимыми.
Соглашения команд join, sort(1), comm(1), uniq(1) и
awk(1) совершенно различны.
Если имя файла состоит из цифр, оно может провзаимодействовать с опцией -o, стоящей непосредственно перед аргументами-файлами