LINUX.ORG.RU

sed vs awk


0

0

Как вы считаете, что лучше использовать - sed или awk? Чему вы отдаете предпочтение? Мне кажется, что у awk больше возможностей, но sed имеет лучшую поддержку регулярных выражений. Часто трудно выбрать между sed или awk, хотя разница в результатах существенная. Хотелось бы услышать аргументы за или против sed и awk.

anonymous

Re: sed vs awk

>Часто трудно выбрать между sed или awk, хотя разница в результатах существенная.

В полученных результатх разница или в скорости работы?

Если в полученных результатах, то предпочтение стоит уделить инструменту, выдавшим правильные результаты :)

UserUnknown ★★★★★ ()
Ответ на: Re: sed vs awk от UserUnknown

Re: sed vs awk

Разница в качестве и скорости разработки. Какой инструмент и в каком случае вы выбираете? У awk более строгий синтаксис, но sed позволяет быстрее написать и сдать проект заказчику. Но при использовании sed также много и ошибок, увы. В каком случае и что вы предпочитаете?

anonymous ()
Ответ на: Re: sed vs awk от UserUnknown

Re: sed vs awk

Под результатом я вообще подразумевал программу. Для меня это является результатом, так как я пишу программы на sed и awk по заказам.

anonymous ()

Re: sed vs awk

Использую тот инструмент, который лучше (программа проще и прозрачнее) подходит для данной цели. Быстродействие у них несущественно отличается.

sdio ★★★★★ ()
Ответ на: Re: sed vs awk от sdio

Re: sed vs awk

Вот именно о том, что лучше я и спрашиваю. Как вы оцениваете, какой инструмент подходит лучше?

anonymous ()

Re: sed vs awk

мне awk больше нравится -- он банально проще -- понятные C-like выражения vs. криптичность седа.

Ну и мощность awk конечно не знает границ..

dilmah ★★★★★ ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

На чём лучше поехать?

Вот ответь на такой вопрос. Так и здесь, не зная цели, объективный выбор не возможен.

UserUnknown ★★★★★ ()
Ответ на: Re: sed vs awk от UserUnknown

Re: sed vs awk

Я спрашиваю именно по каким критериям вы оцениваете, какой инструмент выбрать.

А на счет на чем лучше поехать - на том, что есть. Машина то обычно одна. А sed и awk - уже два инструмента. Надо делать выбор между ними.

anonymous ()
Ответ на: Re: sed vs awk от dilmah

Re: sed vs awk

Да, но часто получается так, что нужно и считать(с чем лучше справляется awk) и парсить отчет(с чем лучше справляется sed) одновременно. Что вы используете в таком случае?

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

В Америку тоже на машине поедешь?

Сам использую и то и другое. Зачем чем-то ограничиваться, если оба инструмента есть даже на уровне busybox?

UserUnknown ★★★★★ ()
Ответ на: Re: sed vs awk от UserUnknown

Re: sed vs awk

В Америку вообще на самолете.

Проблема в том, что заказ часто требуется выполнить на одном языке, но возможно выбрать либо sed, либо awk. Вы когда-нибудь занимались программированием на sed/awk на заказ?

А busybox - не такой уж и низкий уровень. Просто скомпилированно в кучу много программ, но часто на sed и awk одновременно банально не хватает места на карманном устройстве(или вообще наручных часах с NetBSD). Поэтому и приходится выбирать что-то одно.

Сказать, что это есть _даже_ на уровне busybox - все равно что сказать - _даже_ на уровне ядра. И там и там много чего есть.

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

> Проблема в том, что заказ часто требуется выполнить на одном языке, но возможно выбрать либо sed, либо awk. Вы когда-нибудь занимались программированием на sed/awk на заказ?

мне доводилось писать только на _шелле_ -- то есть я мог свободно комбинировать и sed и awk. Седом я делал только простейшие замены. awk скрипты же доходили до десятков строк. Но тот же awk часто нужно комбинировать с sort и т.п.

dilmah ★★★★★ ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

> А вы никогда не писали на sed скрипты хотя бы строк в 20?

я не знаю сед -- он слишком криптический.

Даже если написать такой скрипт -- как и кто его сможет прочитать и понять?

dilmah ★★★★★ ()
Ответ на: Re: sed vs awk от dilmah

Re: sed vs awk

>Даже если написать такой скрипт -- как и кто его сможет прочитать и понять?

Я, например.

anonymous ()

Re: sed vs awk

Извините конечно, что вмешиваюсь, а чем perl не угодил?

Legioner ★★★★★ ()

Re: sed vs awk

Сравнение тёплого с мягким.

marsijanin ★★ ()

Re: sed vs awk

sed/awk - это какой-то очень странный выбор. sed/perl - это ещё понятно, есть пограничные задачи. Но awk-то зачем?

Miguel ★★★★★ ()
Ответ на: Re: sed vs awk от Miguel

Re: sed vs awk

> sed/awk - это какой-то очень странный выбор. sed/perl - это ещё понятно, есть пограничные задачи. Но awk-то зачем?

минимализм. awk это стандарт. awk есть в базовой системе. perl это монстр.

dilmah ★★★★★ ()
Ответ на: Re: sed vs awk от Miguel

Re: sed vs awk

А в чем разница между скриптом и программой? Что отличает первое от второго? Есть какое-нибудь определение?

Бывают большие скрипты и двухстрочные программы. Почему Perl - скрипты, а Python - программы.

Или это устоявшиеся лексемы?

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

> А в чем разница между скриптом и программой? Что отличает первое от второго? Есть какое-нибудь определение?

> Бывают большие скрипты и двухстрочные программы. Почему Perl - скрипты, а Python - программы.

> Или это устоявшиеся лексемы?

Что с тобой?

Miguel ★★★★★ ()
Ответ на: Re: sed vs awk от Miguel

Re: sed vs awk

>Что с тобой?

Это не я. Это другой анонимус.

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

> Почему Perl - скрипты, а Python - программы

кто тебе это сказал?

pba ()

Re: sed vs awk

хм, предпочитаю использовать чистый sh(1) или чистый sed(1) или чистый awk(1).

У sed'а нравится hold space, короткие имена у функций, хорошая
поддержка regexp'ов и значительный выигрыш в скорости по ним у awk.

У awk'а нравится поддержка rand() и split(), а также встроенный printf().

У sh'а нравится большое кол-во встроенных команд и возможность
не только манипулировать строками.

awk не нравится так же как perl, ибо жирное гавно:
> \ls -fl `which sh sed awk`
-r-xr-xr-x  1 root  wheel  111616 May 15 10:07 /bin/sh
-r-xr-xr-x  1 root  wheel   31476 May 15 10:09 /usr/bin/sed
-r-xr-xr-x  2 root  wheel  123464 May 15 10:09 /usr/bin/awk
(это на freebsd-8-current)

> cat >someFile
blablablabla
here comes табуляция	and 百shota!
blah       multiple        spaces    blaaaah

### begin test.sh
# simple substitute example
sub() {
    foo=$1 bar=$2
    IFS="" # prevent sh(1) from truncating whitespaces
    while read line; do
	case $line in
	    *$foo*) echo ${line%%$foo*}$bar${line##*$foo} ;;
	    *)      echo $line
	esac
    done
}

sub <someFile shota loli
sed <someFile s/shota/loli/
awk <someFile '{ sub("shota","loli"); print }'
### end test.sh

> sh test.sh
blablablabla
here comes табуляция	and 百loli!
blah       multiple        spaces    blaaaah
blablablabla
here comes табуляция	and 百loli!
blah       multiple        spaces    blaaaah
blablablabla
here comes табуляция	and 百loli!
blah       multiple        spaces    blaaaah

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

> sub("shota","loli")

oops, двойные кавычки не обязательны. ;)

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

Извиняюсь перед автором топика про тупой вопрос на счет скриптов-програм. Просто не понятно лексическое значение. Определение.

anonymous ()
Ответ на: Re: sed vs awk от anonymous

Re: sed vs awk

>Вы когда-нибудь занимались программированием на sed/awk на заказ?

Нет, но не отказался бы попробовать ;-)

P.S. Что прям так много людей кому это нужно постоянно?! Удивлен.

php-coder ★★★★★ ()
Ответ на: Re: sed vs awk от dilmah

Re: sed vs awk

>минимализм. awk это стандарт. awk есть в базовой системе. perl это монстр.

Perl может и монстр, зато написанная на нём программа везде работает корректно. А на sed (и, наверное, на awk) можно написАть то, что не будет работать на другой (обычно не GNU) системе. Я понимаю, что нужно писАть переносимо и портабельно, но в итоге часто получается некрасиво или долго работает. IMHO.

php-coder ★★★★★ ()
Ответ на: Re: sed vs awk от php-coder

Re: sed vs awk

>Нет, но не отказался бы попробовать ;-)

О, это будет уёбищная программа! ухандохает всё содержимое компа -- спасиба не нада)))

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.