Awk

„Awk Trim“ tarpai

„Awk Trim“ tarpai
Kaip programuotojui, norint išsaugoti ir tvarkyti duomenis, gali tekti dirbti su skirtingais failais. Viena pagrindinių failų manipuliavimo užduočių yra failų tarpų pašalinimas. Tarpai sudaromi iš tarpų, tuščių eilučių, nbsp ir skirtukų. Programuotojams dažnai reikia pašalinti spragas, kad būtų saugomi tik reikalingi duomenys ir būtų galima pašalinti nereikalingus tarpus. Tarpai gali būti priekyje (eilutės pradžioje) arba gale (eilutės pabaigoje).

Toliau pateikiami keli scenarijai, kai gali reikėti pašalinti tarpus:

Tarpus galite pašalinti rankiniu būdu, jei faile yra tik kelios eilutės. Bet failui, kuriame yra šimtai eilučių, bus sunku rankiniu būdu pašalinti visas tarpus. Šiam tikslui yra įvairių komandinės eilutės įrankių, įskaitant sed, awk, cut ir tr. Tarp šių įrankių „awk“ yra viena iš galingiausių komandų.

Kas yra Awk?

„Awk“ yra galinga ir naudinga scenarijų kalba, naudojama manipuliuojant tekstu ir kuriant ataskaitas. „Awk“ komanda yra sutrumpinta, naudojant kiekvieno jos (Aho, Weinbergerio ir Kernighano), kuri ją sukūrė, inicialus. „Awk“ leidžia apibrėžti kintamuosius, skaitines funkcijas, eilutes ir aritmetinius operatorius; kurti suformatuotas ataskaitas; ir dar.

Šiame straipsnyje paaiškinamas komandos „awk“ naudojimas apipjaustant tarpus. Perskaitę šį straipsnį, sužinosite, kaip naudoti komandą awk:

Šiame straipsnyje nurodytos komandos buvo vykdomos naudojant „Ubuntu 20“.04 „Focal Fossa“ sistema. Tačiau tas pačias komandas galima atlikti ir kituose „Linux“ paskirstymuose. Šiame straipsnyje nurodytoms komandoms vykdyti naudosime numatytąją „Ubuntu Terminal“ programą. Galite pasiekti terminalą naudodami sparčiuosius klavišus „Ctrl + Alt + T“.

Demonstravimo tikslais naudosime pavyzdinį failą, pavadintą „pavyzdys.txt.“Atlikti šiame straipsnyje pateiktus pavyzdžius.

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

Norėdami peržiūrėti visas faile esančias spragas, perkelkite komandos cat išvestį į komandą tr taip:

$ katės pavyzdys.txt | tr "" "*" | tr "\ t" "&"

Ši komanda pakeis visas nurodyto failo spragas simboliu (*). Įvedę šią komandą, galėsite aiškiai pamatyti, kur faile yra visi tarpai (įskaitant ir priekinius, ir galus).

Šios simbolio * simboliai rodo, kur pavyzdžio faile yra visi tarpai. Vienvietis * reiškia atskirą tarpą.

Apkirpkite visas baltąsias erdves

Norėdami iš failo pašalinti visas spragas, perkelkite komandą iš katės į komandą awk taip:

$ katės pavyzdys.txt | awk 'gsub (/ /, ""); spausdinti '

Kur

Pirmiau nurodyta komanda pakeičia visas tarpus (/ /) niekuo („“).

Šioje ekrano kopijoje galite pamatyti, kad visi tarpai, įskaitant priekines ir galines, buvo pašalinti iš išvesties.

Apkirpkite pirmaujančias tarpus

Norėdami pašalinti iš failo tik pagrindinius tarpus, perkelkite komandą iš katės į komandą awk taip:

$ katės pavyzdys.txt | awk 'sub (/ ^ [\ t] + /, ""); spausdinti '

Kur

Aukščiau pateikta komanda pakeičia vieną ar daugiau tarpų eilutės pradžioje (^ [\ t] +) niekuo („“), kad pašalintų priekinius tarpus.

Šioje ekrano kopijoje galite pamatyti, kad visi pagrindiniai tarpai buvo pašalinti iš išvesties.

Galite naudoti šią komandą, kad patikrintumėte, ar pirmiau nurodyta komanda pašalino pagrindines spragas:

$ katės pavyzdys.txt | awk 'sub (/ ^ [\ t] + /, ""); spausdinti '| tr "" "*" |
tr "\ t" "&"

Žemiau pateiktoje ekrano kopijoje aiškiai matoma, kad pašalintos tik pagrindinės spragos.

„Trim“ pralenkia baltąsias erdves

Norėdami iš failo pašalinti tik galus esančius tarpus, perkelkite komandą iš katės į komandą awk taip:

$ katės pavyzdys.txt | awk 'sub (/ [\ \ t] + $ /, ""); spausdinti '

Kur

Pirmiau nurodyta komanda pakeičia vieną ar daugiau tarpų eilutės pabaigoje ([\ t] + $) niekuo („“), kad pašalintų galinius tarpus.

Galite naudoti šią komandą, kad patikrintumėte, ar pirmiau nurodyta komanda pašalino galinius tarpus:

$ katės pavyzdys.txt | awk 'sub (/ [\ t] + $ /, ""); spausdinti '| tr "" "*" | tr "\ t" "&"

Iš žemiau pateikto ekrano aiškiai matosi, kad galiniai tarpai buvo pašalinti.

Apkirpkite tiek pirmaujančią, tiek galinę tarpą

Norėdami iš failo pašalinti tiek priekines, tiek galines tarpus, perkelkite komandą iš katės į komandą awk taip:

$ katės pavyzdys.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); spausdinti '

Kur

Pirmiau nurodyta komanda pakeičia ir priekinius, ir galinius tarpus (^ [\ t]+ [\ t] + $) nieko („“) jų pašalinti.

Norėdami nustatyti, ar pirmiau nurodyta komanda pašalino failo priekines ir galines tarpus, naudokite šią komandą:

$ katės pavyzdys.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); spausdinti '|
tr "" "*" | tr "\ t" "&"

Iš žemiau pateikto ekrano aiškiai matosi, kad tiek priekiniai, tiek galiniai tarpai buvo pašalinti ir liko tik tarpai tarp eilučių.

Keletą tarpų pakeiskite viena erdve

Norėdami pakeisti kelis tarpus vienu tarpu, perkelkite komandą iš katės į komandą awk taip:

$ katės pavyzdys.txt | awk 'gsub (/ [] + /, ""); spausdinti '

Kur:

Pirmiau nurodyta komanda pakeičia kelias tarpus ([] +) į vieną baltą tarpą („“).

Galite naudoti šią komandą, kad patikrintumėte, ar aukščiau nurodyta komanda kelis tarpus pakeitė tarpais:

$ katės pavyzdys.txt | awk 'sub (/ [\ t] + $ /, ""); spausdinti '| | tr "" "*" | tr "\ t" "&"

Mūsų pavyzdiniame faile buvo kelios vietos. Kaip matote, pavyzdyje yra keli tarpai.Naudojant komandą awk, txt failas buvo pakeistas vienu tarpu.

Norėdami apkirpti tarpus tik tose eilutėse, kuriose yra konkretus simbolis, pvz., Kablelis, dvitaškis ar pusiau dvitaškis, naudokite komandą awk su -F įvesties skyriklis.

Pavyzdžiui, žemiau parodytas failo pavyzdys, kuriame kiekvienoje eilutėje yra tarpų.

Norėdami pašalinti tarpus tik iš eilučių, kuriose yra kablelis (,), komanda bus tokia:

$ katės pavyzdys.txt | awk -F, '/, / gsub (/ /, ""); spausdinti '

Kur (-F,) yra įvesties lauko skyriklis.

Pirmiau nurodyta komanda pašalins ir rodys tik tarpus tarp eilučių, kuriose yra nurodytas simbolis (,). Likusios linijos liks nepakeistos.

Išvada

Tai yra viskas, ką turite žinoti, kad apkarpytumėte savo duomenų tarpus, naudodami komandą awk. Pašalinti tarpus tarp duomenų gali reikėti dėl kelių skirtingų priežasčių. Nepriklausomai nuo priežasties, naudodamiesi šiame straipsnyje aprašytomis komandomis, galite lengvai apkarpyti visas savo duomenų spragas. Jūs netgi galite apkirpti priekines arba galines tarpus, apkirpti tiek priekines, tiek užpakalines tarpus ir pakeisti kelias tarpus viena vieta su komanda awk.

Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...