LINUX.ORG.RU

Работа с AWK

 ,


1

1

Всем привет, такая проблема, когда выполняю вот такую команду в командной строке:

awk '{print 100 * (12/123) - 100}'

Ничего не происходит. Переходит на новую строчку и никакого вывода.

Потому что он ждёт аргумент. Не знаю как это правильно сделать, но как вариант так:

echo | awk '{print 100 * (12/123) - 100}'

generator ★★★ ()
awk 'BEGIN{print 100 * (12/123) - 100}'

А вообще,

man awk

Aegir ()
Ответ на: комментарий от Medar

Это не избавит от ожидания stdin, придётся ещё и ^D :)

Gotf ★★★ ()

Программа на AWK состоит из набора паттернов и действий. Входные строки (если они есть), сопоставляются с паттернами, и в случае совпадения/выполнения условия вызываются действия (что в фигурных скобках).

Отсутствие паттерна/условия, как в исходном сообщении, будет выполнять действие для каждой входной строки.

Нет строк - нет действий.

Есть специальные паттерны BEGIN и END, действия, назначенные им, запускаются соответственно до и после обработки всех строк.

yoghurt ★★★★★ ()

Это что продолжение вчерашнего треда про вычисления в баше? Чем не устраивает bc и let?

zinfandel ★★ ()

man pytnon
man ruby
man perl

anonymous ()
Ответ на: комментарий от KennyMinigun

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

anonymous ()
Ответ на: комментарий от anonymous

Я пытаюсь подчеркнуть отличную форму изложения оратора выше, который меня и заинтересовал к подальшему изучению.

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

Тогда почитай официальную книжку по AWK от его авторов, там досконально описан как сам язык, так и всякие его применения (вполне необычные и куда более сложные, чем какие-то однострочники)

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