Почему print работает с awk, а echo - нет?

Подводя итог ....

Это работает:

awk 'BEGIN { FS=":"; }
{ print  $1  $3  $5; }' /etc/passwd

Но это не так:

awk 'BEGIN { FS=":"; }
{ echo  $1  $3  $5; }' /etc/passwd

Я хотел бы знать, почему.

0
06.01.2019, 23:30
1 ответ

Структура выполнения awk такова: pattern { операторы действия }

Действия
.     Операторы действий заключены в фигурные скобки, { и }. Операторы действия состоят из обычных операторов присваивания, условных операторов и циклов. встречающихся в большинстве языков. Операторы, управляющие операторы и

  • print - это оператор ввода/вывода awk.

    Из manpage:

    print Печать текущей записи. Выводимая запись завершается значением ORS.
    
  • Посетите manual>Оператор print:

    Оператор print

    Используйте оператор print для создания вывода с простым, стандартным форматированием. Вы указываете только строки или числа для печати в списке, разделенном запятыми. Они выводятся, разделенные одинарными пробелами, за которыми следует новая строка. Оператор выглядит следующим образом:

    print item1, item2, ...
    

Для получения дополнительной информации посетите man awk.

Также обратите внимание, что:

PATTERNS AND ACTIONS
       AWK is a line-oriented language.  The pattern comes  first,  and  then  the  action.   Action  statements  are
       enclosed  in  {  and  }.  Either the pattern may be missing, or the action may be missing, but, of course, not
       both.  If the pattern is missing, the action is executed for every single record of input.  A  missing  action
       is equivalent to

              { print }

       which prints the entire record.

awk не имеет ключевого слова/заявления echo.

$ man awk | grep echo | wc -l
0
2
28.01.2020, 02:35

Теги

Похожие вопросы