Авк

Авк Трим Вхите спаце

Авк Трим Вхите спаце
Као програмер, можда ћете морати да радите са различитим датотекама за чување и манипулацију подацима. Један основни задатак манипулације датотекама укључује уклањање празних простора у датотекама. Размаци се састоје од размака, празних редова, нбсп и картица. Програмери често морају да уклоне размаке, тако да се чувају само неопходни подаци и непотребни размаци могу бити уклоњени. Размаци могу бити водећи (на почетку реда) или пратећи (на крају реда) размаци.

Следеће укључују неке сценарије у којима би могло бити потребно уклањање празних простора:

Размаке је могуће ручно уклонити ако датотека садржи само неколико редова. Али за датотеку која садржи стотине редова, биће тешко ручно уклонити све размаке. У ту сврху су доступни различити алати за командну линију, укључујући сед, авк, цут и тр. Међу овим алатима, авк је једна од најмоћнијих команди.

Шта је Авк?

Авк је моћан и користан скриптни језик који се користи у манипулацији текстом и генерисању извештаја. Команда авк је скраћена користећи иницијале свих људи (Ахо, Веинбергер и Кернигхан) који су је развили. Авк вам омогућава да дефинишете променљиве, нумеричке функције, низове и аритметичке операторе; креира форматиране извештаје; и још.

Овај чланак објашњава употребу наредбе авк за обрезивање празних простора. Након читања овог чланка научићете како да користите наредбу авк да бисте извршили следеће:

Команде у овом чланку су извршене на Убунту 20.04 Фоцал Фосса систем. Међутим, исте наредбе се могу изводити и на другим Линук дистрибуцијама. За покретање команди у овом чланку користићемо подразумевану Убунту Терминал апликацију. Терминалу можете приступити помоћу тастерске пречице Цтрл + Алт + Т.

У сврху демонстрације користићемо датотеку узорка названу „сампле.ткт.”Да би се изводили примери из овог чланка.

Погледајте све размаке у датотеци

Да бисте прегледали све размаке који су присутни у датотеци, напојите излаз наредбе цат у наредбу тр, како следи:

$ мачка узорак.ткт | тр "" "*" | тр "\ т" "&"

Ова наредба ће заменити све размаке у датој датотеци знаком (*). Након уноса ове наредбе, моћи ћете јасно да видите где су сви бели простори (укључујући водеће и пратеће беле просторе) присутни у датотеци.

Знакови * на следећем снимку екрана показују где су сви размаци присутни у датотеци узорка. Појединачни * представља један размак.

Обрежите све размаке

Да бисте уклонили све размаке из датотеке, пренесите наредбу оут оф цат у наредбу авк, како следи:

$ мачка узорак.ткт | авк 'гсуб (/ /, ""); принт '

Где

Горња команда замењује све размаке (/ /) ничим (“”).

На следећем снимку екрана можете видети да су сви бели простори, укључујући водећи и пратећи бели простор, уклоњени из излаза.

Трим водећи бели простори

Да бисте из датотеке уклонили само водеће размаке, пренесите наредбу оут оф цат у наредбу авк, како следи:

$ мачка узорак.ткт | авк 'под (/ ^ [\ т] + /, ""); принт '

Где

Горња команда замењује један или више размака на почетку низа (^ [\ т] +) ничим (“”) за уклањање водећих празних простора.

На следећем снимку екрана можете видети да су сви водећи бели простори уклоњени из резултата.

Помоћу следеће наредбе можете да потврдите да је горња команда уклонила водеће размаке:

$ мачка узорак.ткт | авк 'под (/ ^ [\ т] + /, ""); испис '| тр "" "*" |
тр "\ т" "&"

На снимку екрана испод је јасно видљиво да су уклоњени само водећи размаци.

Трим пратећи размаци

Да бисте из датотеке уклонили само пратеће размаке, пренесите наредбу оут оф цат у наредбу авк, како следи:

$ мачка узорак.ткт | авк 'суб (/ [\ т] + $ /, ""); принт '

Где

Горња команда замењује један или више размака на крају низа ([\ т] + $) ничим („“)) да би се уклонили бели простори који прате.

Помоћу следеће наредбе можете да потврдите да је горња наредба уклонила пратеће размаке:

$ мачка узорак.ткт | авк 'под (/ [\ т] + $ /, ""); испис '| тр "" "*" | тр "\ т" "&"

Са доњег снимка екрана јасно је видљиво да су бели простори уклоњени.

Исеците водећи и пратећи бели простор

Да бисте уклонили и водећи и пратећи размаке из датотеке, пренесите наредбу оут оф цат у наредбу авк, како следи:

$ мачка узорак.ткт | авк 'гсуб (/ ^ [\ т] + | [\ т] + $ /, ""); принт '

Где

Горња команда замењује и почетни и крајњи размак (^ [\ т]+ [\ т] + $) без ичега („“) за њихово уклањање.

Да бисте утврдили да ли је горња наредба уклонила и водећи и пратећи размак у датотеци, користите следећу наредбу:

$ мачка узорак.ткт | авк 'гсуб (/ ^ [\ т] + | [\ т] + $ /, ""); испис '|
тр "" "*" | тр "\ т" "&"

Са доњег снимка екрана јасно је видљиво да су уклоњени и водећи и пратећи размаци, а остали су само размаци између низова.

Замените више простора једним простором

Да бисте замијенили више размака једним размаком, пренесите наредбу оут оф цат у наредбу авк, како слиједи:

$ мачка узорак.ткт | авк 'гсуб (/ [] + /, ""); принт '

Где:

Горња команда замењује више празних простора ([] +) једним празним простором („“).

Можете да користите следећу наредбу да бисте верификовали да је горња наредба замијенила више простора размацима:

$ мачка узорак.ткт | авк 'суб (/ [\ т] + $ /, ""); испис '| |. | тр "" "*" | тр "\ т" "&"

У нашој датотеци узорка било је више размака. Као што видите, више белих простора у узорку.ткт датотека је замењена једним празним простором помоћу команде авк.

Да бисте обрезали размаке само у оним редовима који садрже одређени знак, попут зареза, двотачке или тачке, користите наредбу авк са улазни сепаратор.

На пример, доле је приказана наша огледна датотека која садржи размаке у сваком реду.

Да бисте уклонили размаке само из редова који садрже зарез (,), наредба би била следећа:

$ цат сампле1.ткт | авк -Ф, '/, / гсуб (/ /, ""); принт '

Где (-Ф,) је сепаратор поља за унос.

Горња наредба ће само уклонити и приказати размаке из редова који садрже наведени знак (,) у њима. Остатак редова остаће непромењен.

Закључак

То је све што треба да знате да бисте смањили размаке у подацима помоћу наредбе авк. Уклањање празних простора из података може бити потребно из неколико различитих разлога. Без обзира на разлог, лако можете изрезати све размаке у подацима помоћу наредби описаних у овом чланку. Можете чак и исећи водећи или пратећи бели простор, обрезати водећи и пратећи бели простор, а више размака заменити једним размаком помоћу команде авк.

Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...
ХД Ремастеред игре за Линук које никада раније нису имале Линук издање
Многи програмери и издавачи игара долазе са ХД ремастером старих игара како би продужили живот франшизе, молимо обожаваоце да захтевају компатибилност...
Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...