Awk

Пространство Awk Trim

Пространство Awk Trim
Като програмист може да се наложи да работите с различни файлове, за да съхранявате и манипулирате данни. Една основна задача за манипулиране на файлове включва премахване на белите пространства във файловете. Белите пространства се състоят от интервали, празни редове, nbsp и раздели. Програмистите често трябва да премахват бели пространства, така че да се съхраняват само необходимите данни и да се премахнат ненужните бели пространства. Пробелите могат да бъдат или водещи (в началото на реда) или последващи (в края на реда) интервали.

По-долу са включени някои сценарии, при които може да е необходимо премахване на бели пространства:

Възможно е да премахнете бели пространства ръчно, ако файл, който съдържа само няколко реда. Но за файл, съдържащ стотици редове, ще бъде трудно да премахнете ръчно всички бели пространства. Налични са различни инструменти на командния ред за тази цел, включително sed, awk, cut и tr. Сред тези инструменти awk е една от най-мощните команди.

Какво е Awk?

Awk е мощен и полезен скриптов език, използван при манипулиране на текст и генериране на отчети. Командата awk е съкратена, като се използват инициалите на всеки от хората (Aho, Weinberger и Kernighan), които са я разработили. Awk ви позволява да дефинирате променливи, числови функции, низове и аритметични оператори; създаване на форматирани отчети; и още.

Тази статия обяснява използването на командата awk за изрязване на бели пространства. След като прочетете тази статия, ще научите как да използвате командата awk, за да изпълните следното:

Командите в тази статия са изпълнени на Ubuntu 20.04 Фокална система Fossa. Същите команди обаче могат да се изпълняват и на други дистрибуции на Linux. Ще използваме приложението по подразбиране Ubuntu Terminal за изпълнение на командите в тази статия. Можете да получите достъп до терминала, като използвате клавишната комбинация Ctrl + Alt + T.

За демонстрационни цели ще използваме примерния файл с име „sample.текст.”, За да изпълняваме примерите, предоставени в тази статия.

Преглед на всички бели пространства във файл

За да видите всички бели пространства, налични във файл, прекарайте изхода на командата 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 'под (/ [\ \ t] + $ /, ""); печат '

Където

Горната команда замества едно или повече интервали в края на низа ([\ t] + $) с нищо (“”) за премахване на последващите бели пространства.

Можете да използвате следната команда, за да проверите дали горната команда е премахнала крайните бели пространства:

$ проба за котка.txt | awk 'под (/ [\ \ 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 'под (/ [\ \ t] + $ /, ""); печат '| | tr "" "*" | tr "\ t" "&"

В нашия примерен файл имаше множество интервали. Както можете да видите, множество бели пространства в извадката.txt файлът беше заменен с едно празно пространство с помощта на командата awk.

За да отрежете белите пространства само в онези редове, които съдържат специфичен символ, като запетая, двоеточие или точка с двоеточие, използвайте командата awk с -F входен разделител.

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

За да премахнете белите пространства само от редовете, които съдържат запетая (,), командата ще бъде следната:

$ котка проба1.txt | awk -F, '/, / gsub (/ /, ""); печат '

Където (-F,) е разделителят на полето за въвеждане.

Горната команда само ще премахне и покаже белите пространства от редовете, които съдържат посочения символ (,) в тях. Останалите редове ще останат незасегнати.

Заключение

Това е всичко, което трябва да знаете, за да отрежете белите пространства във вашите данни, като използвате командата awk. Премахването на белите пространства от вашите данни може да се наложи по няколко различни причини. Каквато и да е причината, можете лесно да отрежете всички бели пространства във вашите данни, като използвате командите, описани в тази статия. Можете дори да отрежете водещи или крайни бели пространства, да отрежете както водещите, така и крайните бели пространства и да замените няколко интервала с едно интервал с командата awk.

Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...