Використання awk в linux
Текст це серце Unix. Філософія "все є файл" повністю пронизує всю систему і розроблені для неї інструменти. Ось чому робота
з текстом є одним з обов`язкових навичок системного адміністратора або користувача-Linux.
AWK - один з найпотужніших інструментів для обробки і фільтрації тексту, доступний навіть для громадян не зв`язкових з програмуванням.
Використання awk в Linux
Найпростіша і часто затребувана завдання - вибірка полів зі стандартного виводу. Ви не знайдете більш підходящого інструмента для вирішення цього завдання, ніж awk. За замовчуванням awk розділяє поля пробілами. Якщо ви хочете надрукувати перше поле, вам потрібно просто вказати awk параметр $ 1:
$ Echo `one two three four` | awk `{print $ 3}`
three
Відео: How to use AWK command?
Іноді необхідно представити дані в певному форматі, наприклад, вибрати кілька слів. AWK легко справляється з угрупованням декількох полів і навіть дозволяє включати статичні дані:
three one
foo: three | bar: one
Якщо поля майданчиках не пробілами, а іншим роздільником, просто вкажіть в параметрі -F потрібний роздільник в ковичках, наприклад ":":
four mississippi
Але роздільник не обов`язково укладати в ковичкі. Наступний висновок аналогічний попередньому:
four mississippi
Іноді потрібно обробити дані з невідомою кількістю полів. Якщо вам потрібно вибрати останнє поле можна скористатися змінної $ NF. Ось так ви можете вивести останнє поле:
Відео: Using AWK to format output
four
Також ви можете використовувати змінну $ NF для отримання передостаннього поля:
three
Або поля з середини:
three
three
Все це можна зробити за допомогою таких утиліт як sed, cut і grep але це буде набагато складніше.
І ще одна можливість awk, підтримка оброблювачів для рядків:
one
two
1
2
3
Це означає що ми повинні виконувати наступний блок коду для кожного рядка. Це можна використовувати, наприклад, для підрахунку кількості переданих даних за запитами з журналу веб-сервера.
Уявіть собі, у нас є журнал доступу, який виглядає так:
23 липня 18:57:13 HTTPD [31950]: "GET / HTTP / 1.1" 200 9300
23 липня 19:01:27 HTTPD [31950]: "GET / HTTP / 1.1" 200 9300
23 липня 19:01:55 HTTPD [31950]: "GET / Foo / Baz HTTP / 1.1" 200 6401
23 липня 19:02:31 HTTPD [31950]: "? GET / Foo / Baz сторінка = 2 HTTP / 1.1" 200 6312
Нам відомо що останнє поле це число переданих байт, тоді ми можемо використовувати змінну $ NF:
344
9300
9300
6401
6312
Ось так можна підрахувати кількість байт:
Відео: Using xargs in Linux
31657
Це тільки декілька прикладів показують використання awk в Linux, освоївши awk один раз в отримаєте дуже потужний і корисний інструмент на все життя.
- Команда runas - запуск програми від імені іншого користувача windows.
- Як правильно створювати структуру бази даних
- Чим відрізняється unix від linux
- Як створити файл в терміналі
- Команда echo - висновок тексту на екран консолі
- Кращий hex редактор для linux
- Команда find - пошук рядка символів в файлі
- Команда print - висновок тексту на пристрій друку
- Команда sort в linux
- Індекси в mysql
- Sql-запит на вибірку з декількох таблиць
- Команда echo в linux
- Перенаправлення вводу виводу linux
- Статичні властивості і методи в php
- Використання cron
- Написання скриптів на bash
- Типи файлів в linux
- Математичні функції в php
- Lfs - linux from scratch
- Різні поля в одному документі word.
- Розбиття і об`єднання рядків в php