Что означает эта команда: awk -F: '{print $ 4}'?

20

Пожалуйста, объясните, что означает следующая команда:

awk -F: '{print }'
    
задан PHP Learner 08.09.2013 в 08:36
источник

2 ответа

41
awk -F: '{print }'
  • awk - это интерпретатор для языка программирования AWK. Язык AWK полезен для манипулирования файлами данных,    поиск и обработка текста.
  • -F <value> - указывает awk , какой разделитель полей использовать. В вашем случае -F: означает, что разделитель : (двоеточие).
  • '{print }' означает печать четвертого поля (поля разделяются на : ).

Пример:

Предположим, что есть файл с именем test , и он содержит следующее:

Hello:my:name:is:Alaa

Если мы выполним команду awk -F: '{print }' test , выход будет:

is

Поскольку is является четвертым полем.

      field1   field3  field5
       -----    ----    ----
       |   |    |  |    |  |
       Hello:my:name:is:Alaa
             ||      ||
             --      --
           field2  field4

    
ответ дан Alaa Ali 08.09.2013 в 08:51
источник
6
  • Вы устанавливаете разделитель полей с помощью ...

    -F
    

    , так что в этом примере это «:».

  • Вы печатаете текст, который находится между 3-м и 4-м разделителями с ...

    '{print }'
    
  • И это объясняет это лучше:

    echo "154:266:377:454:533" | awk -F: '{print }'
    454
    
ответ дан Rinzwind 08.09.2013 в 08:49