Awk

Як надрукувати першу або останню колонки або обидві за допомогою функції awk

Як надрукувати першу або останню колонки або обидві за допомогою функції awk

Команда "awk" Linux є потужною утилітою для різних операцій з текстовими файлами, таких як пошук, заміна та друк. Його легко використовувати з табличними даними, оскільки він автоматично ділить кожен рядок на поля або стовпці на основі роздільника полів. Коли ви працюєте з текстовим файлом, який містить табличні дані і хочете надрукувати дані певного стовпця, тоді найкращим варіантом є команда 'awk'. У цьому посібнику ми покажемо вам, як надрукувати перший стовпець та / або останній стовпець рядка чи текстового файлу.

Роздрукуйте перший стовпець та / або останній стовпець виводу команди

Багато команд Linux, таких як команда ls, генерують табличні результати. Тут ми покажемо вам, як надрукувати перший стовпець та / або останній стовпець з результату команди 'ls -l'.

Приклад 1: Друк першого стовпця виводу команди

Наступна команда 'awk' надрукує перший стовпець з результату команди 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ 1'

Наступний результат буде виданий після запуску вищевказаних команд.

Приклад 2: Друк останнього стовпця виводу команди

Наступна команда 'awk' надрукує останній стовпець з результату команди 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ NF'

Наступний результат буде виданий після запуску вищевказаних команд.

Приклад 3: Друк першого та останнього стовпців виводу команди

Наступна команда 'awk' надрукує перший і останній стовпці з результату команди 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ 1, $ NF'

Наступний результат буде виданий після запуску вищевказаних команд.

Роздрукуйте перший стовпець та / або останній стовпець текстового файлу

Тут ми покажемо вам, як за допомогою команди 'awk' надрукувати перший стовпець та / або останній стовпець текстового файлу.

Створіть текстовий файл

Щоб продовжити цей підручник, створіть текстовий файл із назвою клієнтів.txt із таким змістом. Файл містить три типи даних про клієнтів: ім'я з ідентифікатором, електронна адреса та номер телефону. Символ табуляції (\ t) використовується для розділення цих значень.

Ім'я Електронна пошта Телефон
Джонатан Бінг - 1001 [електронна пошта захищена] 01967456323
Майкл Джексон - 2006 [захищено електронною поштою] 01756235643
Джаніфер Лопес - 3029 [електронна пошта захищена] 01822347865
Джон Авраам - 4235 Дж [електронна пошта захищена] 01590078452
Мир Саббір - 2756 [електронна пошта захищена] 01189523978

Приклад 4: Друк першого стовпця файлу без використання роздільника полів

Якщо в команді 'awk' не використовується роздільник полів, тоді пробіл використовується як роздільник поля за замовчуванням. Наступна команда 'awk' надрукує перший стовпець за допомогою роздільника за замовчуванням.

$ котів клієнтів.txt
Клієнти $ awk 'print $ 1'.txt

Наступний результат буде виданий після запуску вищевказаних команд. Зверніть увагу, що на виході відображається лише ім’я клієнта, оскільки пробіл застосовується як роздільник поля. Рішення цієї проблеми показано в наступному прикладі.

Приклад 5: Друк першого стовпця файлу з роздільником

Тут \ t використовується як роздільник поля для друку першого стовпця файлу. Параметр '-F' використовується для встановлення роздільника поля.

$ котів клієнтів.txt
$ awk -F '\ t' 'print $ 1' клієнти.txt

Наступний результат буде виданий після запуску вищевказаних команд. Вміст файлу розділено на три стовпці на основі \ t. Тому ім’я та ідентифікатор замовника друкуються як перша колонка. Якщо ви хочете надрукувати ім’я клієнта без ідентифікатора, перейдіть до наступного прикладу.


Якщо ви хочете надрукувати ім'я замовника без ідентифікатора, тоді вам слід використовувати '-' як роздільник полів. Наступна команда 'awk' надрукує ім'я клієнта лише як перший стовпець.

$ котів клієнтів.txt
$ awk -F '-' 'print $ 1' клієнти.txt

Наступний результат буде виданий після запуску вищевказаних команд. Результат включає повні імена клієнтів без їх ідентифікаторів.

Приклад 6: Друк останнього стовпця файлу

Наступна команда 'awk' надрукує останню колонку клієнтів.txt. Оскільки в команді не використовується роздільник полів, пробіл буде використовуватися як роздільник поля.

$ котів клієнтів.txt
Клієнти $ awk 'print $ NF.txt

Наступний результат буде виданий після запуску вищевказаних команд. Останній стовпець містить телефонні номери, як показано на виході.

Приклад 7: Друк першого та останнього стовпців файлу

Наступна команда 'awk' надрукує перший і останній стовпці клієнтів.txt. Тут вкладка (\ t) використовується як роздільник полів для поділу вмісту на стовпці. Тут вкладка (\ t) використовується як роздільник для виводу.

$ котів клієнтів.txt
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' клієнти.txt

Наступний результат з’явиться після запуску вищевказаних команд. Вміст розділено на три стовпці на \ t; перший стовпець містить ім’я та ідентифікатор клієнта, а другий стовпець - номер телефону. Перший і останній стовпці друкуються з використанням \ t як роздільника.

Висновок

Команда 'awk' може застосовуватися по-різному, щоб отримати перший стовпець та / або останній стовпець з будь-якого виводу команди або з табличних даних. Важливо зазначити, що в команді потрібен роздільник полів, і якщо такий не передбачений, тоді використовується пробіл.

Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...
Встановіть найновіший емулятор Dolphin для Gamecube & Wii на Linux
Емулятор Dolphin дозволяє грати у вибрані вами ігри Gamecube та Wii на персональних комп’ютерах Linux (ПК). Будучи вільно доступним і відкритим ігров...
Як використовувати GameConqueror Cheat Engine в Linux
Стаття висвітлює посібник із використання механізму читів GameConqueror в Linux. Багато користувачів, які грають у ігри в Windows, часто використовуют...