сед

Сед Уклоните размак

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

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

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

Научићете како да користите сед за:

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

Шта је Сед

Сед (скраћеница од едитор уређивача) је врло моћан и прикладан услужни програм у Линуку који нам омогућава извођење основних манипулација текстом на улазним токовима. То није уређивач текста, али помаже у манипулисању и филтрирању текста. Прима улазне токове и уређује их у складу са упутствима корисника, а затим штампа трансформисани текст на екран.

Са седом можете:

Коришћење Седа за уклањање празних простора

За уклањање празних простора из текста користићемо следећу синтаксу:

с / РЕГЕКСП / замена / заставе

Где

Регуларни изрази

Неки од регуларних израза које ћемо овде користити су:

У сврху демонстрације користићемо следећу датотеку узорка названу „тестфиле“.

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

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

$ цат тестфиле | тр "" "*" | тр "\ т" "&"

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

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

Уклоните све размаке (укључујући размаке и картице)

У неким случајевима морате да уклоните све размаке из података, тј.е. водећи, пратећи и размаци између текстова. Следећа команда ће уклонити све размаке из „тест датотеке“.

$ цат тестфиле | сед -р 'с / \ с + // г'

Белешка: Сед не мења ваше датотеке ако не сачувате излаз у датотеку.

Излаз:

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

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

$ цат тестфиле | сед -р 'с / \ с + // г' | тр "" "*" | тр "\ т" "&"

Из излаза можете видети да није симбол (*) што значи да су сви размаци уклоњени.

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

$ цат тестфиле | сед -р '2с / \ с + // г'

Уклоните све водеће размаке (укључујући размаке и картице)

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

$ цат тестфиле | сед 'с / ^ [\ т] * //'

Излаз:

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

Такође можете да користите следећу наредбу да бисте потврдили да су уклоњени сви водећи бели простори:

$ цат тестфиле | сед 'с / ^ [\ т] * //' | тр "" "*" | тр "\ т" "&"

Из излаза можете видети да на почетку редова нема симбола (*) који потврђује да су уклоњени сви водећи размаци.

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

$ цат тестфиле | сед '2с / ^ [\ т] * //'

Уклони све пратеће размаке (укључујући размаке и картице)

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

$ цат тестфиле | сед 'с / [\ т] * $ //'

Излаз:

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

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

$ цат тестфиле | сед 'с / [\ т] * $ //' | тр "" "*" | тр "\ т" "&"

Из излаза можете видети да на крају редова нема симбола (*) који потврђује да су уклоњени сви размаци који прате.

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

$ цат тестфиле | сед '2с / [\ т] * $ //'

Уклоните водећи и пратећи размак

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

$ цат тестфиле | сед 'с / ^ [\ т] * //; с / [\ т] * $ //'

Излаз:

Следећи излаз појавио се након покретања горње наредбе, која показује да су и почетни и пратећи бели простори уклоњени из текста.

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

$ цат тестфиле | сед 'с / ^ [\ т] * //; с / [\ т] * $ //' | тр "" "*" | тр "\ т" "&"

Из излаза можете видети да на почетку или на крају редова нема симбола (*) који потврђује да су уклоњени сви водећи и пратећи размаци.

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

$ цат тестфиле | сед '2с / ^ [\ т] * //; 2с / [\ т] * $ //'

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

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

Следећа наредба ће заменити све више белих простора с једним белим размаком из сваког реда у „тест датотеци“.

$ цат тестфиле | сед 'с / [] \ + / / г'

Излаз:

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

Такође можете да користите следећу наредбу да бисте проверили да ли је више белих простора замењено једним белим простором:

$ цат тестфиле | сед 'с / [] \ + / / г' | тр "" "*" | тр "\ т" "&"

Из излаза можете видети појединачни (*) симбол на сваком месту који потврђује да су све појаве више белих простора замењене једним белим простором.

Дакле, овде се радило о уклањању белих простора из ваших података помоћу сед. У овом чланку сте научили како да користите сед да бисте уклонили све беле просторе из података, уклонили само водећи или пратећи бели простор и уклонили водећи и пратећи бели простор. Такође сте научили како да замените више простора једним простором. Сада ће вам бити лако уклонити размаке из датотеке која садржи стотине или хиљаде редова.

Екран Трацкпад и показивач миша АппиМоусе за Виндовс таблете
Корисницима таблета често недостаје показивач миша, посебно када су уобичајени за коришћење преносних рачунара. Паметни телефони и таблети на додир ос...
Средњи тастер миша не ради у оперативном систему Виндовс 10
Тхе средње дугме миша помаже вам да се крећете кроз дугачке веб странице и екране са пуно података. Ако се то заустави, на крају ћете користити тастат...
Како да промените леви и десни тастер миша на рачунару са Виндовс 10
Сасвим је нормално да су сви уређаји рачунарског миша ергономски дизајнирани за дешњаке. Али постоје доступни уређаји за миш који су посебно дизајнира...