Awk

Пробіл Awk Trim

Пробіл Awk Trim
Як програмісту, вам, можливо, доведеться працювати з різними файлами для зберігання та обробки даних. Одне з основних завдань маніпулювання файлами передбачає видалення пробілів у файлах. Пробіли складаються з пробілів, порожніх рядків, nbsp та вкладок. Програмістам часто потрібно видаляти пробіли, щоб зберігати лише необхідні дані, а непотрібні пробіли можна було усунути. Пробіли можуть бути або провідними (на початку рядка), або кінцевими (в кінці рядка) пробілами.

Нижче наведено кілька сценаріїв, у яких може знадобитися видалення пробілів:

Можна видалити пробіли вручну, якщо файл містить лише кілька рядків. Але для файлу, що містить сотні рядків, буде важко видалити всі пробіли вручну. Для цього доступні різні інструменти командного рядка, включаючи sed, awk, cut та tr. Серед цих інструментів awk є однією з найпотужніших команд.

Що таке Awk?

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

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

Команди в цій статті виконувались на Ubuntu 20.04 Фокальна система Fossa. Однак ті самі команди можуть виконуватися і в інших дистрибутивах Linux. Для запуску команд у цій статті ми будемо використовувати програму Ubuntu Terminal за замовчуванням. Ви можете отримати доступ до терміналу за допомогою комбінації клавіш Ctrl + Alt + T.

Для демонстраційних цілей ми будемо використовувати файл-зразок із назвою „sample.txt.”Для виконання прикладів, наведених у цій статті.

Переглянути всі пробіли у файлі

Щоб переглянути всі пробіли, наявні у файлі, передайте вихідні дані команди cat до команди tr, як показано нижче:

$ зразок кота.txt | tr "" "*" | tr "\ t" "&"

Ця команда замінить усі пробіли у даному файлі символом (*). Після введення цієї команди ви зможете чітко побачити, де всі пробіли (включаючи пробіли як провідні, так і кінцеві) містяться у файлі.

Символи * на наступному скріншоті показують, де всі пробіли присутні у зразковому файлі. Сингл * представляє єдиний пробіл.

Обрізати всі пробіли

Щоб видалити всі пробіли з файлу, передайте команду out of cat команді awk, як показано нижче:

$ зразок кота.txt | awk 'gsub (/ /, ""); друк '

Де

Вищевказана команда замінює всі пробіли (/ /) нічим (“”).

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

Обрізати провідні пробіли

Щоб видалити лише провідні пробіли з файлу, передайте команду out of cat команді awk, як показано нижче:

$ зразок кота.txt | awk 'суб (/ ^ [\ t] + /, ""); друк '

Де

Вищенаведена команда замінює один або кілька пробілів на початку рядка (^ [\ t] +) нічим (“”), щоб видалити пробіли, що ведуть.

На наступному скріншоті ви бачите, що всі провідні пробіли були видалені з вихідних даних.

Ви можете використати таку команду, щоб переконатися, що вищевказана команда видалила пробіли, що ведуть:

$ зразок кота.txt | awk 'суб (/ ^ [\ t] + /, ""); друк '| tr "" "*" |
tr "\ t" "&"

На скріншоті нижче добре видно, що були видалені лише пробіли.

Обрізати кінцеві пробіли

Щоб видалити з файла лише кінцеві пробіли, передайте команду out of cat команді awk, як показано нижче:

$ зразок кота.txt | awk 'sub (/ [\ t] + $ /, ""); друк '

Де

Вищевказана команда замінює один або кілька пробілів у кінці рядка ([\ t] + $) нічим (“”), щоб видалити кінцеві пробіли.

Ви можете використати таку команду, щоб переконатися, що наведена вище команда видалила кінцеві пробіли:

$ зразок кота.txt | awk 'sub (/ [\ t] + $ /, ""); друк '| tr "" "*" | tr "\ t" "&"

З наведеного нижче знімка екрану добре видно, що кінцеві пробіли були видалені.

Обрізати провідні та кінцеві пробіли

Щоб видалити як провідні, так і кінцеві пробіли з файлу, передайте команду out of cat команді awk, як показано нижче:

$ зразок кота.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); друк '

Де

Вищевказана команда замінює пробіли як на початку, так і на кінці (^ [\ t]+ [\ t] + $), нічого (“”) для їх видалення.

Щоб визначити, чи видалена вищезазначеною командою як провідні, так і кінцеві пробіли у файлі, використовуйте таку команду:

$ зразок кота.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); друк '|
tr "" "*" | tr "\ t" "&"

З наведеного нижче знімка екрану добре видно, що пробіли, як провідні, так і кінцеві, були видалені, і залишаються лише пробіли між рядками.

Замініть кілька пробілів на один пробіл

Щоб замінити кілька пробілів одним пробілом, переведіть команду out of cat до команди awk, як показано нижче:

$ зразок кота.txt | awk 'gsub (/ [] + /, ""); друк '

Де:

Наведена команда замінює кілька пробілів ([] +) одним пробілом (““).

Ви можете використовувати наступну команду, щоб переконатися, що вищевказана команда замінила кілька пробілів пробілами:

$ зразок кота.txt | awk 'sub (/ [\ t] + $ /, ""); друк '| | tr "" "*" | tr "\ t" "&"

У нашому зразковому файлі було кілька пробілів. Як бачите, кілька пробілів у зразку.txt-файл замінено одним пробілом за допомогою команди awk.

Щоб обрізати пробіли лише в тих рядках, які містять певний символ, наприклад, кому, двокрапку або крапку з комою, використовуйте команду awk з -F вхідний роздільник.

Наприклад, нижче показано наш зразок файлу, який містить пробіли в кожному рядку.

Щоб видалити пробіли лише з рядків, що містять кому (,), команда буде такою:

$ зразок кота1.txt | awk -F, '/, / gsub (/ /, ""); друк '

Де (-F,) - роздільник поля введення.

Вищевказана команда лише видалить та відобразить пробіли з рядків, що містять у них вказаний символ (,). Решта рядків залишаться незмінними.

Висновок

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

Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
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,...