sed

Sed Pašalinti tarpą

Sed Pašalinti tarpą
Tarpų pašalinimas dokumentuose yra esminis formatavimo žingsnis, kurio reikia norint pagerinti bendrą teksto išdėstymą ir užtikrinti, kad duomenys būtų švarūs ir tvarkingi. Tai padeda išsaugoti tik reikiamus duomenis ir atsikratyti nereikalingų priekinių ir galinių tarpų. Toliau pateikiami keli scenarijai, kai jums gali tekti pašalinti tarpus:

Jei kalbėsime apie pagrindines spragas, jas palyginti lengva pastebėti, kaip yra teksto pradžioje. Tačiau nėra lengva pastebėti atsiliekančias tarpus. Tas pats pasakytina apie dvigubus tarpus, kuriuos taip pat kartais sunku pastebėti. Viskas tampa sunkiau, kai reikia iš dokumento, kuriame yra tūkstančiai eilučių, pašalinti visus tuos priekinius ir galus esančius tarpus.

Norėdami pašalinti tarpus iš savo dokumento, galite naudoti įvairius įrankius, tokius kaip awk, sed, cut ir tr. Kituose kituose straipsniuose aptarėme „awk“ naudojimą pašalinant tarpus. Šiame straipsnyje aptarsime sedo naudojimą tarpams pašalinti iš duomenų.

Sužinosite, kaip naudoti sed:

Vykdysime komandas „Ubuntu 20“.04 Židinio Fossa. Tas pačias komandas galite paleisti ir kituose „Linux“ paskirstymuose. Komandoms vykdyti naudosime numatytąją „Ubuntu Terminal“ programą. Norėdami atidaryti terminalą, naudokite sparčiuosius klavišus „Ctrl + Alt + T“.

Kas yra Sed

„Sed“ (reiškia srauto redaktorių) yra labai galingas ir patogus „Linux“ įrankis, leidžiantis atlikti pagrindines teksto manipuliacijas įvesties srautuose. Tai nėra teksto rengyklė, tačiau ji padeda manipuliuoti ir filtruoti tekstą. Jis priima įvesties srautus ir redaguoja juos pagal vartotojo instrukcijas, tada išspausdina transformuotą tekstą į ekraną.

Su sed galite:

„Sed“ naudojimas tarpams pašalinti

Norėdami pašalinti tarpų iš teksto, naudosime šią sintaksę:

s / REGEXP / pakeitimas / vėliavos

Kur

Reguliarūs posakiai

Kai kurie įprasti posakiai, kuriuos naudosime čia, yra šie:

Demonstravimo tikslais naudosime šį failo pavyzdį pavadinimu „testfile“.

Peržiūrėkite visas baltąsias sritis faile

Norėdami rasti visas savo failo tarpus, įveskite katės komandos išvestį į komandą tr taip:

$ katės bandomoji byla | tr "" "*" | tr "\ t" "&"

Ši komanda pakeičia visas jūsų failo spragas simboliu (*), kuris palengvina visų baltųjų erdvių pastebėjimą, nesvarbu, ar jie yra pavieniai, ar keli, ar priekiniai, ar galiniai tarpai.

Šioje ekrano kopijoje galite pamatyti, kad tarpai pakeisti simboliu *.

Pašalinti visas tarpus (įskaitant tarpus ir skirtukus)

Kai kuriais atvejais reikia pašalinti iš duomenų visas spragas, t.e. pirmaujančių, atsiliekančių ir tarpų tarp tekstų. Ši komanda pašalins visas spragas iš „testfile“.

$ katės bandomoji byla | sed -r 's / \ s + // g'

Pastaba: „Sed“ nekeičia jūsų failų, nebent išsaugotumėte išvestį į failą.

Išvestis:

Paleidus pirmiau nurodytą komandą, atsirado tokia išvestis, kuri rodo, kad visos tarpai buvo pašalinti iš teksto.

Taip pat galite naudoti šią komandą, kad patikrintumėte, ar visi tarpai buvo pašalinti.

$ katės bandomoji byla | sed -r 's / \ s + // g' | tr "" "*" | tr "\ t" "&"

Iš išvesties galite pamatyti, kad nėra simbolio (*), o tai reiškia, kad visi tarpai buvo pašalinti.

Norėdami pašalinti visus tarpus, bet tik iš konkrečios eilutės (tarkime, eilutės numeris 2), galite naudoti šią komandą:

$ katės bandomoji byla | sed -r '2s / \ s + // g'

Pašalinti visas pagrindines tarpus (įskaitant tarpus ir skirtukus)

Norėdami pašalinti visas tarpus tarp kiekvienos eilutės pradžios (priekinės tarpai), naudokite šią komandą:

$ katės bandomoji byla | sed 's / ^ [\ t] * //'

Išvestis:

Šis išvestis pasirodė paleidus aukščiau nurodytą komandą, kuri rodo, kad visos pagrindinės tarpai buvo pašalinti iš teksto.

Taip pat galite naudoti šią komandą, kad patikrintumėte, ar visi pagrindiniai tarpai buvo pašalinti:

$ katės bandomoji byla | sed 's / ^ [\ t] * //' | tr "" "*" | tr "\ t" "&"

Išvestyje galite pamatyti, kad eilučių pradžioje nėra (*) simbolio, kuris patvirtina, kad pašalintos visos pagrindinės tarpai.

Norėdami pašalinti priekines spragas tik iš konkrečios eilutės (tarkime, eilutės numeris 2), galite naudoti šią komandą:

$ katės bandomoji byla | sed '2s / ^ [\ t] * //'

Pašalinti visas galūnes spragas (įskaitant tarpus ir skirtukus)

Norėdami pašalinti visas tarpus tarp kiekvienos eilutės pabaigos (galų tarpai), naudokite šią komandą:

$ katės bandomoji byla | sed 's / [\ t] * $ //'

Išvestis:

Šis išvestis pasirodė paleidus aukščiau nurodytą komandą, kuri rodo, kad visos teksto vietos buvo pašalintos.

Taip pat galite naudoti šią komandą, kad patikrintumėte, ar visi galiniai tarpai buvo pašalinti.

$ katės bandomoji byla | sed 's / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

Išvestyje matote, kad eilučių gale nėra simbolio (*), kuris patvirtintų, kad pašalintos visos galinės tarpai.

Norėdami pašalinti galus tarpus tik iš konkrečios eilutės (tarkime, eilutės numeris 2), galite naudoti šią komandą:

$ katės bandomoji byla | sed '2s / [\ t] * $ //'

Pašalinkite tiek priekines, tiek galines tarpus

Norėdami pašalinti visas tarpus tarp kiekvienos eilutės pradžios ir pabaigos (t.e. ir priekinių, ir galinių tarpų), naudokite šią komandą:

$ katės bandomoji byla | sed 's / ^ [\ t] * //; s / [\ t] * $ //'

Išvestis:

Šis išvestis pasirodė paleidus aukščiau nurodytą komandą, kuri rodo, kad iš priekio ir galo tarpai buvo pašalinti iš teksto.

Taip pat galite naudoti šią komandą, kad patikrintumėte, ar priekiniai ir galiniai tarpai buvo pašalinti.

$ katės bandomoji byla | sed 's / ^ [\ t] * //; s / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

Išvestyje matote, kad eilučių pradžioje ar pabaigoje nėra (*) simbolio, kuris patvirtina, kad pašalintos visos priekinės ir galinės tarpai.

Norėdami pašalinti tiek priekinę, tiek galinę tarpą tik iš konkrečios eilutės (tarkime, eilutės numeris 2), galite naudoti šią komandą:

$ katės bandomoji byla | sed '2s / ^ [\ t] * //; 2s / [\ t] * $ //'

Keletą tarpų pakeiskite viengubomis

Kai kuriais atvejais toje pačioje failo vietoje yra keli tarpai, tačiau jums reikia tik vienos tarpų. Tai galite padaryti pakeisdami šias kelias tarpus viena erdve naudodami sed.

Ši komanda pakeis visas kelias tarpus tarp atskirų taškų iš kiekvienos „testfile“ eilutės.

$ katės bandomoji byla | sed 's / [] \ + / / g'

Išvestis:

Šis išvestis pasirodė paleidus aukščiau nurodytą komandą, kuri rodo, kad keli tarpai buvo pakeisti į vieną tarpą.

Taip pat galite naudoti šią komandą, kad patikrintumėte, ar keli tarpai pakeisti viengubaisiais tarpais:

$ katės bandomoji byla | sed 's / [] \ + / / g' | tr "" "*" | tr "\ t" "&"

Išvestyje kiekvienoje vietoje galite pamatyti pavienį (*) simbolį, kuris patvirtina, kad visi kelių tarpų atvejai yra pakeisti viena tarpu.

Taigi, visa tai buvo apie tarpų pašalinimą iš duomenų naudojant sed. Šiame straipsnyje jūs sužinojote, kaip naudoti „sed“, kad pašalintumėte iš duomenų visas spragas, pašalintumėte tik priekinę arba galinę spragas ir pašalintumėte tiek priekinę, tiek galinę spragas. Jūs taip pat sužinojote, kaip pakeisti kelias tarpus į vieną. Dabar jums bus lengva pašalinti tarpus iš failo, kuriame yra šimtai ar tūkstančiai eilučių.

Vidutinis pelės mygtukas neveikia sistemoje „Windows 10“
The vidurinis pelės mygtukas padeda naršyti ilgus tinklalapius ir ekranus, kuriuose yra daug duomenų. Jei tai sustos, gerai, jūs naudosite klaviatūrą ...
Kaip pakeisti kairįjį ir dešinįjį pelės mygtukus „Windows 10“ kompiuteryje
Gana įprasta, kad visi kompiuterio pelės įrenginiai yra ergonomiškai sukurti dešiniarankiams. Tačiau yra pelių prietaisų, specialiai sukurtų kairiaran...
Mėgdžiokite pelės paspaudimus, užveskite pelės žymeklį naudodami pelę „Clickless Mouse“ sistemoje „Windows 10“
Pelės ar klaviatūros naudojimas netinkamoje laikysenoje, kai naudojama per daug, gali sukelti daug sveikatos problemų, įskaitant įtampą, riešo kanalo ...