Awk и Sed

Модератор: Модераторы разделов

Ответить
elf1423
Сообщения: 4
ОС: Ubuntu Linux

Awk и Sed

Сообщение elf1423 »

Чем отличаются Awk и Sed? Если можно, поподробнее!

Какие преимущества имеет Awk над Sed или Sed над Awk?
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Awk и Sed

Сообщение Nazyvaemykh »

awk — простой язык программирования преимущественно для работы с текстом. C переменными, циклами и т.п.
sed — потоковый вариант редактора ed. Минимальный набор команд по редактированию текста. Никаких арифметических операций и пр.

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

sed хорошо бы знать обязательно, из-за его команды s.
awk можно и не знать, если, например, вы знаете perl, python и другие чуть более современные скриптовые языки.

sed всегда останется современным и актуальным, awk несколько архаичный. Но, обратите внимание, полное описание awk составляет меньше 2 тыс. строк, освоить его очень просто. Это по-прежнему изящный и элегантный язык, пригодный для работы с текстами, csv-файлами и т.п.

Большим недостатком awk является наличие многих несовместимых друг с другом версий. Даже стандарты POSIX разных лет противоречат друг другу. Текущий стандарт, к сожалению, в некоторых случаях выбрал в качестве стандартных наименее удобные и привычные реализации.
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Awk и Sed

Сообщение Nazyvaemykh »

И да, что бы вам тут не рассказали…
И awk, и sed, эти жемчужины программирования в духе, Юникс, стоят того, чтобы прочитать о них. А читать-то совсем немного:
http://pubs.opengroup.org/onlinepubs/7908799/xcu/awk.html
http://pubs.opengroup.org/onlinepubs/007908799/xcu/sed.html
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Awk и Sed

Сообщение drBatty »

elf1423 писал(а):
21.09.2011 17:42
Чем отличаются Awk и Sed?

awk - работает с записями, sed работает со строками.
ещё sed не умеет считать.
Nazyvaemykh писал(а):
21.09.2011 19:15
простой язык программирования преимущественно для работы с текстом. C переменными, циклами и т.п.

вы не правы - sed тоже простой ЯП для работы с текстом. С переменными, с циклами, и т.п.. Если вы ниасилили ничего кроме s - ваши проблемы.

и да, повторяться лень: читайте - http://drbatty.ru/sed/ch06.html
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Awk и Sed

Сообщение Nazyvaemykh »

drBatty, да осилил я sed, осилил.
Например, вот вы сказали, что sed не умеет считать, а это неправда:
$ echo 600851475143 1186261 | ./gcd.sed
6857
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
elf1423
Сообщения: 4
ОС: Ubuntu Linux

Re: Awk и Sed

Сообщение elf1423 »

Русскоязычных ресурсов про Awk не назовете?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Awk и Sed

Сообщение drBatty »

Nazyvaemykh писал(а):
21.09.2011 19:54
Например, вот вы сказали, что sed не умеет считать, а это неправда:
$ echo 600851475143 1186261 | ./gcd.sed

что такое "./gcd.sed"?
а вообще, sed - Тьюринг-полный ЯП, на нём можно написать всё что угодно. В том числе и dc.
Но на brainfuck'е проще :)
elf1423 писал(а):
21.09.2011 19:55
Русскоязычных ресурсов про Awk не назовете?

http://forum.drbatty.ru/viewtopic.php?f=77&t=5251
лениво искать, но они есть.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Awk и Sed

Сообщение Nazyvaemykh »

drBatty, gcd.sed как легко догадаться, моя реализация вычисления наибольшего общего делителся двух чисел, написанная целиком на sed.
Забавы и развелечения в командой строке
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Awk и Sed

Сообщение drBatty »

Nazyvaemykh писал(а):
21.09.2011 20:11
gcd.sed как легко догадаться, моя реализация вычисления наибольшего общего делителся двух чисел, написанная целиком на sed.
Забавы и развелечения в командой строке

не лень было? с вашего разрешения, включу ссылку и скрипты в свой учебник - мне столько букв лень писать :)
ок?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Awk и Sed

Сообщение Nazyvaemykh »

Забирайте, только gcd подходит больше для прикола. многие вещи сделаны там далеко не лучшим образом. А вот переделать по-хорошему несколько раз садился — но это уже лень.
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Awk и Sed

Сообщение drBatty »

Nazyvaemykh писал(а):
21.09.2011 20:25
Забирайте, только gcd подходит больше для прикола. многие вещи сделаны там далеко не лучшим образом.

спасибо. такие вещи и делаются не за деньги :)
за деньги делаются скучные и не смешные скрипты...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить