Прослушав на курсе по FreeBSD подкаст, в котором коротко рассматривались awk и sed, захотелось узнать побольше. Полез в инет, нашел пару статей длинных с примерами, думал даже запостить их еосюда, но потом внезапно передумал. Причиной стало видео, о котором напишу ниже. Для начала краткое определение того, о чем пойдет речь.
AWK
AWK — интерпретируемый скриптовый C-подобный язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам.
Название AWK складывается из инициалов разработчиков языка: Alfred V. Aho, Peter J. Weinberger и Brian W. Kernighan. Первая версия AWK была написана в 1977 в AT&T Bell Laboratories.
AWK рассматривает входной поток как список записей. Каждая запись делится на поля. На основе этой информации выполняется некоторый определённый программистом алгоритм обработки. По умолчанию разделителем записей является символ новой строки (то есть записи – это то же самое, что строки), разделителем полей — символ пробела или табуляции, или последовательность таких символов. Символы-разделители можно явно определить в программе. Символ-разделитель полей можно определить и в командной строке.
SED
sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
Первоначально был написан как UNIX-утилита Ли Макмахоном (Lee E. McMahon) из Bell Labs в 1973—74 годах. Сейчас sed доступен фактически для любой операционной системы, поддерживающей работу с командной строкой.
sed получает входной поток (обычно файл) построчно, редактирует каждую строку согласно правилам, определённым в sed-скрипте с использованием простого языка sed, и затем выводит результат в выходной поток.
sed часто называют неинтерактивным текстовым редактором. Он отличается от обычных текстовых редакторов «инвертированностью» по отношению к тексту и набору команд редактирования. Обычные текстовые редакторы вначале загружают весь текст документа, а затем применяют к нему команды по одной, в то время как sed вначале загружает в себя набор команд, а затем применяет весь набор команд к каждой строчке текста. Так как одновременно в памяти находится только одна строка, sed может обработать произвольно большие текстовые файлы.
Материал взят из Википедии.
Итак, я отказался от изучения по мануалам самостоятельно, так как наткнулся на довольно обширное видео LinuxCBT AWK-SED. Человечек с множеством различных страшных :) титулов много часов рассказывает и показывает на примерах как работает awk и sed. Все на английском. Признаюсь, сам ещё не посмотрел, но обязательно в планах на 2008-ой год поставил просмотреть :)
Ссылку приводить не буду, качал c какого то буржуйского торрент трекера, так что советую воспользоваться поиском в гугле :) Удачи в изучении и просмотре, оставляйте комментарии как оно..
6 комментов оставлено (Add 1 more)