Ahoj

Awk Trim medzery

Awk Trim medzery
Ako programátor budete musieť na ukladanie a manipuláciu s údajmi pracovať s rôznymi súbormi. Jednou zo základných úloh pri manipulácii so súbormi je odstránenie medzier v súboroch. Biele medzery sa skladajú z medzier, prázdnych riadkov, nbsp a tabulátorov. Programátori často musia odstrániť medzery, aby sa ukladali iba potrebné údaje a zbytočné medzery bolo možné vylúčiť. Medzery môžu mať medzery buď na začiatku (na začiatku riadku), alebo na konci (na konci riadku).

Nasleduje niekoľko scenárov, v ktorých môže byť potrebné odstránenie medzery:

Je možné ručne odstrániť biele medzery, ak ide o súbor, ktorý obsahuje iba niekoľko riadkov. Ale pre súbor obsahujúci stovky riadkov bude ťažké manuálne odstrániť všetky medzery. Na tento účel sú k dispozícii rôzne nástroje príkazového riadku, vrátane sed, awk, cut a tr. Medzi týmito nástrojmi je awk jedným z najsilnejších príkazov.

Čo je to awk?

Awk je výkonný a užitočný skriptovací jazyk používaný pri manipulácii s textom a generovaní správ. Príkaz awk je skrátený pomocou iniciálok každého z ľudí (Aho, Weinberger a Kernighan), ktorí ho vyvinuli. Awk umožňuje definovať premenné, číselné funkcie, reťazce a aritmetické operátory; vytvárať formátované správy; a viac.

Tento článok vysvetľuje použitie príkazu awk na orezávanie medzery. Po prečítaní tohto článku sa dozviete, ako používať príkaz awk na vykonanie nasledujúcich krokov:

Príkazy v tomto článku boli vykonané na systéme Ubuntu 20.04 Systém Focal Fossa. Rovnaké príkazy je však možné vykonať aj v iných distribúciách Linuxu. Na spustenie príkazov v tomto článku použijeme predvolenú aplikáciu Ubuntu Terminal. Do terminálu sa dostanete pomocou klávesovej skratky Ctrl + Alt + T.

Na demonštračné účely použijeme vzorový súbor s názvom „sample.TXT.”Na vykonanie príkladov uvedených v tomto článku.

Zobraziť všetky medzery v súbore

Ak chcete zobraziť všetky medzery v súbore, prepojte výstup príkazu cat s príkazom tr, a to nasledovne:

$ vzorka mačky.txt | tr "" "*" | tr "\ t" "&"

Tento príkaz nahradí všetky medzery v danom súbore znakom (*). Po zadaní tohto príkazu budete jasne vidieť, kde sú v súbore všetky biele medzery (vrátane úvodných aj koncových medzier).

Znaky * na nasledujúcej snímke obrazovky ukazujú, kde sú vo vzorovom súbore všetky biele medzery. Jeden * predstavuje jeden prázdny znak.

Orezať všetky medzery

Ak chcete zo súboru odstrániť všetky medzery, zadajte príkaz out of cat do príkazu awk nasledovne:

$ vzorka mačky.txt | awk 'gsub (/ /, ""); tlač '

Kde

Vyššie uvedený príkaz nahradí všetky medzery (/ /) ničím („“).

Na nasledujúcej snímke obrazovky vidíte, že všetky medzery vrátane úvodných a koncových medzier boli z výstupu odstránené.

Orezajte vedúce biele medzery

Ak chcete zo súboru odstrániť iba úvodné biele medzery, použite príkaz out of cat na príkaz awk nasledujúcim spôsobom:

$ vzorka mačky.txt | awk 'sub (/ ^ [\ t] + /, ""); print '

Kde

Vyššie uvedený príkaz nahradí jednu alebo viac medzier na začiatku reťazca (^ [\ t] +) ničím („“) na odstránenie úvodných medzier.

Na nasledujúcej snímke obrazovky vidíte, že z výstupu boli odstránené všetky medzery medzi riadkami.

Pomocou nasledujúceho príkazu môžete overiť, či vyššie uvedený príkaz odstránil úvodné biele medzery:

$ vzorka mačky.txt | awk 'sub (/ ^ [\ t] + /, ""); tlač '| tr "" "*" |
tr "\ t" "&"

Na snímke obrazovky nižšie je jasne viditeľné, že boli odstránené iba úvodné biele medzery.

Orezať koncové medzery

Ak chcete zo súboru odstrániť iba koncové biele medzery, zadajte príkaz out of cat do príkazu awk nasledovne:

$ vzorka mačky.txt | awk 'sub (/ [\ t] + $ /, ""); print '

Kde

Vyššie uvedený príkaz nahradí jednu alebo viac medzier na konci reťazca ([\ t] + $) ničím („“) na odstránenie koncových medzier.

Pomocou nasledujúceho príkazu môžete overiť, či vyššie uvedený príkaz odstránil koncové medzery:

$ vzorka mačky.txt | awk 'sub (/ [\ t] + $ /, ""); tlač '| tr "" "*" | tr "\ t" "&"

Na nasledujúcom obrázku je jasne viditeľné, že boli odstránené koncové biele medzery.

Orezajte vedúce aj koncové medzery

Ak chcete zo súboru odstrániť úvodné aj koncové biele medzery, zadajte príkaz out of cat do príkazu awk takto:

$ vzorka mačky.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); print '

Kde

Vyššie uvedený príkaz nahrádza úvodnú aj koncovú medzeru (^ [\ t]+ [\ t] + $) bez nič („“) na ich odstránenie.

Ak chcete zistiť, či vyššie uvedený príkaz odstránil úvodné aj koncové biele medzery v súbore, použite nasledujúci príkaz:

$ vzorka mačky.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); tlač '|
tr "" "*" | tr "\ t" "&"

Z obrázku nižšie je jasne viditeľné, že boli odstránené úvodné aj koncové biele medzery a medzi reťazcami zostali iba medzery.

Vymeňte viac priestorov za jeden priestor

Ak chcete nahradiť viac medzier jednou medzerou, zadajte príkaz out of cat do príkazu awk takto:

$ vzorka mačky.txt | awk 'gsub (/ [] + /, ""); print '

Kde:

Vyššie uvedený príkaz nahradí viac medzery ([] +) jedným prázdnym znakom („“).

Pomocou nasledujúceho príkazu môžete overiť, že vyššie uvedený príkaz nahradil viaceré medzery bielymi priestormi:

$ vzorka mačky.txt | awk 'sub (/ [\ t] + $ /, ""); tlač '| | tr "" "*" | tr "\ t" "&"

V našom vzorovom súbore bolo viac medzier. Ako vidíte, vo vzorke je niekoľko medzier.Súbor txt bol nahradený jedným prázdnym miestom pomocou príkazu awk.

Ak chcete orezať biele medzery iba v tých riadkoch, ktoré obsahujú konkrétny znak, napríklad čiarku, dvojbodku alebo bodkočiarku, použite príkaz awk spolu s -F oddeľovač vstupu.

Nižšie je uvedený napríklad náš vzorový súbor, ktorý v každom riadku obsahuje medzery.

Ak chcete odstrániť medzery iba z riadkov, ktoré obsahujú čiarku (,), vykonal by tento príkaz:

$ vzorka mačky1.txt | awk -F, '/, / gsub (/ /, ""); print '

Kde (-F,) je oddeľovač vstupného poľa.

Vyššie uvedený príkaz odstráni a zobrazí iba medzery z riadkov, ktoré v nich obsahujú zadaný znak (,). Zvyšok riadkov zostane nedotknutý.

Záver

To je všetko, čo potrebujete vedieť, aby ste orezali biele medzery vo svojich údajoch pomocou príkazu awk. Odstránenie prázdnych priestorov z vašich údajov môže byť potrebné z niekoľkých rôznych dôvodov. Nech už je dôvod akýkoľvek, môžete všetky biele medzery vo svojich údajoch ľahko orezať pomocou príkazov popísaných v tomto článku. Môžete dokonca orezať úvodné alebo koncové biele medzery, orezať úvodné aj koncové biele medzery a príkazom awk nahradiť viaceré medzery jednou medzerou.

Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...