Средства обработки текста
Текстовые редакторы vi, ee, nano
UNIX обладает богатыми возможностями обработки текстовой информации, как с помощью программ, запускаемых из командной строки или скриптов, так и с использованием текстовых редакторов. Подробнее об этих редакторах см. Приложение.
Программы-фильтры
В UNIX существуют программы, получающие данные из стандартного потока ввода (stdin) и выводящие результаты свое работы в стандартный поток вывода (stdout). Общее название таких программ – программы-фильтры (или просто фильтры). Фильтр обычно (но не всегда) умеет также читать данные из файлов, имена которых были переданы ему в качестве аргументов, причем в этом случае чтение из файлов происходит именно в том порядке, в каком имена файлов были указаны в качестве параметров. Совместно с возможностью перенаправления стандартных потоков (stdin, stdout и stderr), использование программ-фильтров предоставляет пользователю большие возможности по обработке информации в командной строке или скриптах.
Фильтр cat
Программа cat является классическим представителем фильтров. То, что прочитано из stdin или из файлов, выводится в stdout. Несмотря на кажущуюся простоту такого действия, использование cat позволяет пользователю быстро и эффективно решать необходимые задачи. Например, если необходимо просмотреть содержимое файла, нет нужды запускать пейджер или, тем более, редактор:
$ cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1e /tmp ufs rw 2 2 /dev/ad0s1f /usr ufs rw 2 2 /dev/ad0s1d /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0
Для добавления строки в конец файла file1:
$ cat >> file1 new line
Опции, используемые с командой cat можно увидеть на странице man.
Показать последние строки файла — tail
Программа tail выводит на stdout последние строки файла (без опции n выводится 10 строк):
Последние 5 строк
$ tail -n 5 /var/log/messages
Последние строки, начиная с 10-й
$ tail -n +10 /var/log/messages
Динамически отслеживать запись в файл
$ tail -F /var/log/messages
Показать первые строки файла — head
Программа head выводит на stdout первые строки файла (без опции n выводится 10 строк):
Первые 5 строк
$ head -n 5 /var/log/messages
Выбор фрагментов строк — cut
Программа cut вырезать из входного потока или файла фрагменты строк, соответствующие определенным позициям символов в строке (опция с) или определенным полям (опция f). В последнем случае считается, что файл имеет табличную структуру (т. е. разбит на колонки) и программе требуется указать разделитель полей с с помощью опции d (разделитем по умолчанию является символ табуляции, в этом случае опция d не нужна).
Примеры:
$ cut -d: -f1 /etc/passwd $ cut -d: -f1,7 /etc/passwd $ cut -d: -f13 /etc/passwd $ cut -c1-5 /etc/passwd
Сортировка файлов — sort
Программа sort позволяет сортировать данные в алфавитном или числовом порядке (опция -n). Подробно с опциями sort можно ознакомится на странице справочного руководства.
Пример сортировки пользователей в системе по алфавиту:
$ grep -v '^#' /etc/passwd | sort
Пример сортировки пользователей в системе по значению UID:
$ grep -v '^#' /etc/passwd | sort t: -k3 -n
|