Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Mans FreeBSD по-русски join - оператор соединения в реляционных базах данных

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)

Домашняя Mans FreeBSD по-русски join - оператор соединения в реляционных базах данных