join — оператор соединения в реляционных базах данных

НАЗВАНИЕ

join — оператор соединения в реляционных базах данных

СИНТАКСИС

join [-a номер_файла | -v номер_файла] [-e строка] [-o список]

[-t символ] [-1 номер_поля] [-2 номер_поля] файл1 файл2

ОПИСАНИЕ

Утилита join выполняет так называемое «соединение по равенству» указан-

ных файлов и пишет результат в стандартный вывод.  «Поле соединения» —

это поле внутри каждого файла, по которому они сравниваются.  По умолча-

нию используется первое поле каждой строки.  Для каждой пары строк из

файлов файл1 и файл2 с одинаковыми полями соединения выводится одна

строка.  Каждая выводимая строка состоит из поля соединения, остальных

полей из файла файл1 и остальных полей из файла файл2.

Разделителями полей по  умолчанию служат символы пробела и табуляции.  В

этом случае несколько идущих подряд пробелов и табуляций считаются одним

разделителем, а пробелы и табуляции в начале строки игнорируются.  Разде-

лителем полей на выходе по умолчанию является одиночный пробел.

Многие опции используют номера файлов и полей.  Нумерация файлов и полей

начинается с единицы, т.е. первый файл в командной строке имеет номер 1,

и первое поле также имеет номер 1.  Имеются следующие опции:     -a номер_файла

В дополнение к обычному выводу, вывести строки файла номер_файла, которым не нашлось соответствия в другом файле.

-e строка

Заменять пустые поля в выводимых строках значением аргумента

строка.

-o список

Указать поля строк исходных файлов, из которых формируются выво-

димые строки.  Каждый элемент списка список должен быть представ-

лен либо в форме номер_файла.номер_поля, либо как `0′ (ноль), что

означает поле соединения.  Элементы списка должны быть разделены

либо запятыми (`,’), либо пробельными символами.  (Во втором слу-

чае список следует взять в кавычки, чтобы предотвратить разбиение

его командной оболочкой на несколько аргументов, либо использо-

вать несколько опций -o.)

-t символ

Использовать указанный символ в качестве разделителя (как на

входе, так и на выходе).  Учитывается каждое вхождение символа

символ в строку исходного файла.

v номер_файла

Не выводить обычный результат соединения, а вместо этого вывести

строки файла номер_файла, которым не нашлось соответствия в дру-

гом файле.  Можно одновременно использовать опции -v 1 и -v 2.

-1 номер_поля

Соединять по полю номер_поля файла файл1.

-2 номер_поля

Соединять по полю номер_поля файла файл2.

Если в качестве разделителя полей используются стандартные символы, то

соединяемые файлы должны быть предварительно отсортированы по полям

соединения так, как это делает sort(1) с опцией -b, иначе join может не

найти все совпадающие поля.  Если символы разделителя заданы опцией -t,

строки должны быть отсортированы так, как это делает sort(1) без опции

-b.     Если один из аргументов файл1 или файл2 задан как `-‘, для него будет

использоваться стандартный ввод.

СТАТУС ЗАВЕРШЕНИЯ

Утилита join возвращает 0 в случае успешного завершения и >0 в случае

возникновения ошибки.

СОВМЕСТИМОСТЬ

Для совместимости со старыми версиями join также имеются следующие опции:

a

В дополнение к обычному выводу, вывести строки обоих исходных

файлов, которым не нашлось соответствия в другом файле.

-j1 номер_поля

Соединять по полю номер_поля файла файл1.

-j2 номер_поля

Соединять по полю номер_поля файла файл2.     -j номер_поля

Соединять по полю номер_поля обоих файлов, файл1 и файл2.

-o список …

Ранние реализации команды join допускали указание сразу несколь-

ких аргументов с опцией -o.  Эти аргументы были в формате

номер_файла.номер_поля, как описано выше.  Это создаёт очевидные

трудности при наличии файлов с именами вроде 1.2.

Эти опции не должны использоваться, и доступны лишь для того, чтобы старые командные сценарии продолжали работать и не требовали изменения.

СМОТРИ ТАКЖЕ

awk(1), comm(1), paste(1), sort(1), uniq(1)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *