Программирование в стандарте POSIX



         

Простейшие средства обработки текстовых файлов - часть 9


# Первый вариант слияния файлов # sort -m -o pp.sorted -n -r -k 3,3 -k 4,4 # -k 5,5 pp2*.sorted # Второй вариант слияния файлов > pp.sorted for f in pp2*.sorted do sort -m -o pp.sorted -n -r -k 3,3\ -k 4,4 -k 5,5 $f pp.sorted done

Листинг 6.13. Два варианта слияния файлов с помощью служебной программы sort.

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

name=pp.sorted if sort -c -r -n -k 3,3 -k 4,4 -k 5,5 $name then echo Данные в файле $name отсортированы\ верно elif echo Данные в файле $name отсортированы\ неверно fi

Листинг 6.14. Проверка правильности упорядоченности строк в файле с помощью служебной программы sort.

Содержимое файлов f1 и f2 сортирует команда (см. пример 6.15) , применяющая в качестве ключа второй непробельный символ второго поля.

sort -k 2.2b,2.2b f1 f2

Листинг 6.15. Пример использования служебной программы sort с модификаторами в определении ключей.

Отсортировать базу данных пользователей по числовым значениям идентификаторов пользователей (третье поле, поля разделяются символом :) можно посредством команды, показанной в пример 6.16.

sort -t ':' -k 3,3n /etc/passwd

Листинг 6.16. Пример использования служебной программы sort с опцией -t.

Выдать содержимое уже отсортированного файла   f.sorted, выводя лишь первую из строк с одинаковыми третьими полями, поможет комбинация опций -m и -u (см. пример 6.17).

sort -um -k 3.1,3 f.sorted

Листинг 6.17. Пример использования служебной программы sort с опциями -m и -u.

В ситуациях, когда есть две версии текста - "правильная" и "неправильная" (например, исходные тексты работающей и неработающей программ), полезно понять, чем они отличаются. Для этого предназначена служебная программа diff:

diff [-c | -e | -f | -C число] [-br] файл1 файл2

Утилита diff сравнивает содержимое исходных файлов и выдает на стандартный вывод список изменений, которые необходимо произвести, чтобы преобразовать файл1 в файл2. Она поддерживает следующие опции.

-b




Содержание  Назад  Вперед