Awk

10 прикладів Awesome Awk Command

10 прикладів Awesome Awk Command
Команда Awk - це потужний інструмент для обробки даних. Він отримує вхідні дані, маніпулює ними та дає результати у стандартному виведенні. Різні операції можна виконувати над рядками та стовпцями файлу.

Знання основ команди “awk” дуже важливо, коли йдеться про ефективну обробку даних, і ця публікація висвітлює ключові особливості команди “awk”. Спершу перевіримо синтаксис:

$ awk [параметри] [файл]

Деякі з найбільш часто використовуваних варіантів наведені в таблиці нижче:

Варіант Опис
-F Щоб вказати розділювач файлів
-f Вкажіть файл, який містить сценарій “awk”
-v Призначити змінну

Давайте подивимось на кілька прикладів використання команди “awk”, і для демонстрації я створив текстовий файл з іменем testFile.txt:

1. Як надрукувати стовпець файлу за допомогою команди awk?

Команда "awk" може бути використана для отримання певного стовпця текстового файлу. Для друку вмісту файлу використовуйте:

$ cat testFile.txt

Тепер, щоб надрукувати другий стовпець файлу, використовуйте:

$ awk 'print $ 2' testFile.txt

Щоб надрукувати більше одного поля, використовуйте команду:

$ awk 'print $ 1, $ 2, $ 3' testFile.txt

Якщо ви не використовуєте кому ",", то результат буде без пробілів:

$ awk 'print $ 1 $ 2 $ 3' testFile.txt

2. Як використовувати регулярний вираз з командою awk:

Для узгодження рядків або будь-якого виразу ми використовуємо скісні риски «//», наприклад, якщо ви хочете надрукувати імена людей, які вивчають «Історію», тоді використовуйте:

$ awk '/ History / print $ 2' testFile.txt

Результат наочно показує, що лише “Сем” та “Томмі” вивчають курс “Історія”.

3. Як використовувати реляційний вираз з командою “awk”:

Для відповідності змісту конкретного поля можна використовувати реляційний вираз. Щоб зіставити будь-який рядок чи вираз із полем, вкажіть поле та скористайтесь оператором порівняння «~» із шаблоном, представленим у такій команді:

$ awk '$ 3 ~ / is / print $ 2' testFile.txt

Наведений вище результат відображає кожне поле у ​​стовпці 2 проти кожного поля, що містить “є” у стовпці 3.

А щоб отримати протилежний результат вищезазначеної команди, використовуйте “! ~ ”Оператор:

$ awk '$ 3! ~ / is / print $ 2 'testFile.txt

Для порівняння, ми також можемо використовувати оператори, такі як більші за “>” та менші за “<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.txt

Вихідні дані надрукували імена людей, які отримали оцінки понад 70.

4. Як використовувати шаблон діапазону за допомогою команди awk:

Діапазон також може бути використаний для пошуку; просто скористайтеся комою “,”, щоб відокремити діапазон, як представлено в згаданій нижче команді:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.txt

Результат показує суб'єктів від "Джоеля" до "Марлен" зі стовпця 2. Ми можемо використовувати подвійний знак рівності “==” для визначення діапазону; див. приклад нижче:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.txt

На виході відображаються імена людей зі стовпця 2 для діапазону позначок “70 до 80” із стовпця 4.

5. Як поєднати шаблон за допомогою логічного оператора:

Використання логічних операторів, таких як АБО «||,» І «&&», дозволяє комбінувати шаблони для пошуку. Використовуйте наступну команду

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.txt

Вищевказана команда друкує імена людей проти четвертого поля, більшого, ніж 80, і шостого поля, більшого за 0.4. І лише два записи виконують умову.

6. Спеціальні вирази команди awk:

Існують два спеціальні вирази:ПОЧАТИ”Та“КІНЕЦЬ”:

ПОЧАТИ: виконати дію до обробки даних

END: Для виконання дії після обробки даних

$ awk 'BEGIN print «Обробка розпочата»; друк $ 2; END print «Обробка завершена» 'testFile.txt

7. Корисна вбудована змінна команди awk:

Команда awk має різні змінні, які допомагають в обробці даних:

Змінна Опис
NF Він надає кількість полів у даних
NR Він дає номер поточного запису
ФАЙЛ Відображає ім'я файлу, який наразі обробляється
ФС та ОФС Розділювач поля та вихідний роздільник поля
RS та ORS Відокремлює розділювач записів та вихідних записів

Наприклад:

$ awk 'END print "Ім'я файлу" FILENAME "має" NF "поля та" NR "записи"' testFile.txt

Ми використовуємо “END”, але якщо ви використовуєте “BEGIN”, на виході буде 0 полів і 0 записів.

8. Як змінити роздільник записів:

Розділювачем за замовчуванням у записі зазвичай є пробіл; якщо є кома “,” або крапка “.”Як роздільник поля, тоді використовуйте опцію“ FS ”разом із роздільником.

Давайте мати ще один файл, де поля даних розділені комами двокрапки “:”:

$ cat testFile2.txt
$ awk 'BEGIN FS = “:” print $ 2' testFile2.txt

Оскільки роздільник файлу - двокрапка, але команда “awk” навіть корисна для таких файлів, просто скористайтеся опцією “FS”.

Також можна використовувати "-F":

$ awk -F “:” 'print $ 2' testFile2.txt

Розділювачем записів за замовчуванням є "новий рядок", і щоб встановити роздільник записів на ":", використовуйте:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.txt

9. Дії Awk:

Дії Awk - це крихітні програми, які оточені дужками “” і мають більше ніж один оператор, розділений крапками з комою “;”.

Найбільш вживаним оператором із командою “awk” є оператор “print”. Наприклад, щоб надрукувати текст із кожним записом, використовуйте текстовий рядок у лапках:

$ awk '“Це поле,” $ 2' тестовий файл.txt

Давайте виконаємо просту операцію підсумовування за допомогою awk:

$ awk 'sum + = $ 4 END printf “% d \ n”, sum' testFile.txt

10. Створення програми awk:

Почнемо з програмування "awk", наведене нижче програмування просто виконує множення:

ПОЧАТИ
i = 2
в той час як (j<4)

друк “Множення 2 на” j “є” i * j;
j++

Збережіть програму за назвою “myCode.awk"І для його запуску відкрийте термінал і введіть:

$ awk -f myCode.awk

Висновок:

Команда “awk” - це зручна команда для обробки, сканування даних текстових файлів, наприклад, для відокремлення будь-якого конкретного поля файлу; ми використовуємо команду “awk”. Це полегшує пошук із текстових файлів у будь-якій формі чи шаблоні. У цьому посібнику ми розуміємо основи команди “awk” та її використання. Команда “awk” перевіряє дані, генерує звіти та навіть аналізує файли. Використання простих команд “awk” також дозволяє користувачам писати крихітні програми для ефективнішої обробки даних.

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...