JOIN(1) 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, стоящей непосредственно перед ар-
гументами-файлами.
|