При работе в среде командной строки необходимо хорошо разбираться в различных командах, позволяющих эффективно управлять файлами, каталогами и другими данными. Одной из таких команд является команда awk.
awk - это мощная утилита, используемая для обработки и манипулирования текстовыми файлами в среде Unix/Linux. В этой статье мы расскажем о том, что представляет собой команда awk, и о том, как эффективно ее использовать.
Что такое команда 'awk'?
Команда awk - это мощный инструмент для манипулирования и обработки текстовых файлов в средах Unix/Linux. С ее помощью можно выполнять такие задачи, как сопоставление образцов, фильтрация, сортировка и манипулирование данными. awk в основном используется для обработки и манипулирования данными в структурированном виде.
Как использовать команду awk
awk - это инструмент командной строки, который может быть использован различными способами. Его можно вызывать непосредственно из командной строки или использовать вместе со сценарием оболочки. Ниже приведены примеры использования awk:
Пример 1: Подсчет количества строк в файле
Для подсчета количества строк в файле можно использовать следующий синтаксис awk:
1 | awk 'END{print NR}' <имя файла> |
Здесь "NR" - это встроенная переменная, содержащая количество записей (строк), обработанных awk. Ключевое слово "END" указывает awk на выполнение этой команды после того, как все строки в файле будут обработаны. Здесь я создал текстовый файл для наглядности, а затем использовал приведенный выше синтаксис в сценарии оболочки, который выглядит следующим образом:
1 2 | #!/bin/bash awk 'END{print NR}' testfile.txt |
Созданный мною текстовый файл содержит две строки, и при использовании команды awk на выходе отображается 2, созданный мною текстовый файл показан на рисунке ниже:
Пример 2: Фильтрация данных
С помощью awk можно фильтровать данные по определенным критериям, и вот синтаксис, который следует использовать для этой цели:
1 | awk '!/<данные для фильтрации>/' <имя файла> |
Например, чтобы отфильтровать все строки файла, содержащие слово "Lorem", можно использовать следующую команду.
1 2 | #!bin/bash awk '!/Lorem/' testfile.txt |
В этом примере символ "!" отрицает поиск по регулярному выражению, поэтому будут выведены все строки, не содержащие слово "Hello". Я использовал тот же текстовый файл, что и в предыдущем примере, поэтому вот результат работы приведенного выше сценария:
Пример 3: Извлечение определенных полей
Команда awk также может использоваться для извлечения из файла определенных полей. Например, если у вас есть файл, содержащий список имен и адресов, и вы хотите извлечь только имена, вы можете использовать следующую команду:
1 | awk '{print $<номер поля>}' <имя файла> |
Здесь для примера я вывел первое поле одного и того же текстового файла, а "$1" представляет собой первое поле в каждой строке файла. Команда "print" указывает awk на печать только этого поля.
1 2 | #!/bin/bash awk '{print $1}' testfile.txt |
В текстовом файле первая запись первой строки - "Lorem", а первая запись второй строки - "Morbi", так что вот вывод данного кода:
Заключение
Команда awk - это мощный инструмент, предназначенный для манипулирования и обработки текстовых файлов. Она позволяет выполнять различные операции с текстовыми файлами, такие как печать определенных столбцов, поиск закономерностей и вычисление сумм. Овладев основами работы с awk, вы сможете оптимизировать свой рабочий процесс и стать более эффективным и результативным пользователем Linux или Unix.