Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

Эту команду можно рассматривать как вариант опции — и команды sort. Следует, однако, учитывать весьма важное отличие. Опция -u позволяет избавиться от всех одинаковых строк в файле, тогда как команда uniq обнаруживает повторяющиеся строки только в том случае, когда они следуют одна за другой. Если же на вход команды uniq подать отсортированный файл, то действие команд sort -u и uniq будет одинаковым.

Рассмотрим пример. Имеется следующий файл:

$ cat myfile.txt

May Day

May Day

May Day

Going Down

May Day

В данном случае команда uniq будет рассматривать первые три строки как повторяющиеся. Пятая строка таковой не считается, потому что не совпадает с четвертой строкой.

<p><emphasis><strong>11.2.1. Синтаксис</strong></emphasis></p>

Общий формат команды uniq таков:

uniq опции входной_файл выходной_файл

Ниже перечислены некоторые из ее опций:

-u Отображение только не повторяющихся строк

-d Отображение одной копии каждой повторяющейся строки

-c Удаление повторяющихся строк с выводом перед каждой из оставшихся строк

числа повторений -f n Игнорирование первых п полей; полем считается последовательность непробельных символов, завершающаяся пробелом или табуляцией

В некоторых системах опция -f не распознается, в этом случае вместо нее следует использовать опцию -n, где п — номер поля.

Давайте применим команду uniq к показанному выше файлу myfile.txt.

$ uniq myfile.txt

May Day

Going Down'

May Day

Как уже говорилось, последняя строка не считается повторяющейся. Если же выполнить над файлом команду sort -u, будут получены только две строки:

$ sort -u myfile.txt

Going Down

May Day

<p><emphasis><strong>11.2.2. Определение количества повторений</strong></emphasis></p>

Указав в команде uniq опцию -c, можно не только отбросить повторяющиеся строки, но и узнать, сколько раз повторяется каждая строка. В следующем примере команда uniq сообщает о том, что первая строка "May Day" встречается три раза подряд:

$ uniq -с myfile.txt

3 May Day

1 Going Down

1 May Day

<p><emphasis><strong>11.2.3. Отображение только повторяющихся строк</strong></emphasis></p>

Опция -d позволяет отобразить только те строки, которые встречаются несколько раз подряд:

$ uniq -d myfile.txt

Mау Day

<p><emphasis><strong>11.2.4. Проверка уникальности отдельных полей</strong></emphasis></p>

Команда uniq позволяет разбивать файл на поля, разделенные пробелами, с тем чтобы можно было исключать требуемые поля из процедуры проверки. Ниже показан небольшой файл, содержащий две колонки текста, причем содержимое второго поля в каждой строке одинаковое:

$ cat parts.txt

AK123 OP

OК122 OP

OК999 OP

Если к этому файлу применить команду uniq, будут отображены все строки, поскольку все они разные.

$ uniq parts.txt

AК123 OP

OK122 OP

OK999 OP

Если же выполнить проверку только по второму полю, получим иной результат. Команда uniq сравнит повторяющиеся поля "ОР" и отобразит только одну строку:

$ uniq -f1 parts.txt

OK123 OP

<p><strong>11.3. Объединение файлов с помощью команды join</strong></p>

Команда join выполняет соединение строк из двух текстовых файлов на основании совпадения указанных полей. Ее действие напоминает операцию join языка SQL. Механизм работы команды таков:

   1. Каждый из двух входных файлов разбивается на поля (по умолчанию разделителем полей является пробел).

   2. Из первого файла извлекается первая строка, а из нее — первое поле (можно указать другое поле).

   3. Во втором файле ищется строка, имеющая такое же первое поле.

   4. Найденная строка, из которой удаляется первое поле, присоединяется к исходной строке, и результат записывается в выходной поток.

   5. Пункты 3 и 4 повторяются до тех пор, пока во втором файле есть строки с совпадающим первым полем.

   6. Пункты 2—6 повторяются для каждой строки первого файла.

Таким образом, в выходной поток попадают только строки, имеющие общие компоненты.

Общий формат команды join таков:

join [опции] входной_файл1 входной_файл2

Рассмотрим некоторые наиболее важные опции этой команды:

Перейти на страницу:

Похожие книги

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии