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

30

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

awk -F: '{print $4}'
Учитель PHP
источник

Ответы:

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

Пример:

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

Hello:my:name:is:Alaa

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

is

Потому что isэто четвертое поле.

      поле1 поле3 поле5
       ----- ---- ----
       | | | | | |
       Привет: мое: Название: есть: Аля
             || ||
             - -
           поле2 поле4

Алаа али
источник
9
  • Вы устанавливаете разделитель полей с помощью ...

    -F
    

    так что это ":" в этом примере.

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

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

    echo "154:266:377:454:533" | awk -F: '{print $4}'
    454
    
Rinzwind
источник
что если я хочу напечатать 454 154:266:377:454:533print $ 4 и всю строку вместе, разделенные пробелом?
Йогеш Дарджи