Как использовать несколько разделителей в AWK

Как использовать несколько разделителей в AWK Советы и хитрости

AWK — это мощный язык программирования с сопоставлением шаблонов, который работает в командной строке для поиска различных шаблонов в выходных данных команд и файлах.

Мы можем считать AWK улучшением по сравнению с Sed, поскольку он предлагает больше функций, включая массивы, переменные, циклы и старые добрые регулярные выражения.

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

Что такое разделители?

Я уверен, что, поскольку вы нашли время, чтобы прочитать эту статью, вы знакомы с концепцией разделителей. Но не помешает подвести итоги, так что давайте сделаем это сейчас:

Вкратце, разделители — это последовательность символов, используемых для разделения текстовых значений строк. Существуют различные распространенные типы разделителей, в том числе:

Имя Символ
Запятая ,
Двоеточие :
Точка с запятой ;
Период .
Трубка |
Обратная косая черта \
Слэш /
Скобки ()
Фигурные скобки {}
Квадратных скобках []
Пробел

Разделитель полей AWK RegEx

Разделитель полей AWK (FS) используется для определения и управления тем, как AWK разбивает запись на различные поля. Кроме того, он может принимать один символ регулярного выражения. После того как вы укажете регулярное выражение в качестве значения для FS, AWK сканирует входные значения на предмет последовательности символов, заданных в регулярном выражении.

Мы собираемся реализовать функциональность AWK для приема значений регулярного выражения в разделителе полей для подключения нескольких разделителей.

Использовать несколько разделителей

Чтобы проиллюстрировать, как разделить с помощью нескольких разделителей в AWK, я буду использовать простой пример, чтобы показать вам, как использовать эту функцию.

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

/org/gnone/desktop/interface:established:Apr17 16.59.09|org.gnome.Terminal.desktop[1099]

Чтобы проиллюстрировать, как разделить с помощью нескольких разделителей в AWK

Из приведенного выше файла мы хотим получить результат, аналогичный показанному ниже:

org/gnome/desktop/interface established Apr 17 16:59.09 org.gnome.Terminal.desktop[1099]

Чтобы разделить файл с помощью различных разделителей — в данном случае двоеточия, пробела и вертикальной черты — мы можем использовать команду, как показано ниже:

awk -F‘[: |]’ ‘{print $1, $2, $3, $4, $5, $6}’ user.log

Приведенная выше команда выводит информацию, как показано ниже:

Читайте также:  Что нового в Windows Server 2019

Приведенная выше команда выводит информацию, как показано ниже

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

Заключение

В этом кратком руководстве мы обсудили использование AWK для разделения нескольких разделителей во входном файле.

Оцените статью
ПОПУЛЯРНЫЕ ТЕХНОЛОГИИ
Добавить комментарий