93a32cf9

Полезные команды


Этот раздел переписал Kees (смотрите раздел "Благодарность").

Некоторые из этих команд практически содержат полноценные командные языки. Здесь объясняются только основы таких команд. Для более подробной информации внимательно просмотрите man-страницы каждой команды.

sed (потоковый редактор)

Sed - это неинтерактивный редактор. Вместо того, чтобы изменять файл движением курсора на экране, следует использовать сценарий инструкций по редактированию для sed, а также имя редактируемого файла. Вы также можете рассматривать sed в качестве фильтра. Посмотрите на некоторые примеры:

$sed 's/to_be_replaced/replaced/g' /tmp/dummy

Sed заменяет строку 'to_be_replaced' строкой 'replaced', читая файл /tmp/dummy . Результат отправляется на стандартный вывод (обычно, на консоль), но Вы также можете добавить '> capture' в вышеуказанную строку, чтобы sed отправлял вывод в файл 'capture'.

$sed 12, 18d /tmp/dummy

Sed отображает все строки, за исключением строк с 12 по 18. Исходный файл этой командой не изменяется.

awk (манипулирование файлами данных, выборка и обработка текста)

Существует большое количество реализаций языка программирования AWK (наиболее распространенными интерпретаторами являются gawk из проекта GNU и "новый awk" mawk.) Принцип достаточно прост: AWK находится в поиске шаблона; для каждого подходящего шаблона выполняется какое-нибудь действие.

Автор повторно создал файл dummy, содержащий следующие строки:

"test123

test

tteesstt"

$awk '/test/ {print}' /tmp/dummy

test123

test

Шаблон, искомый AWK, это 'test', а действие, выполняемое AWK при обнаружении строки в /tmp/dummy с подстрокой 'test', это 'print'.

$awk '/test/ {i=i+1} END {print i}' /tmp/dummy

3

Если Вы находитесь в поиске нескольких шаблонов, замените текст между кавычками на '-f file.awk'. В этом случае, Вы можете записать все шаблоны и действия в файле 'file.awk'.

grep (выводит строки, соответствующие искомому шаблону)

Мы рассматривали несколько команд grep в предыдущих главах, которые отображали строки, соответствующие шаблону. Однако grep способен выполнять значительно большее.



Содержание раздела