Dozvedieť sa viac o Awk: Najvýkonnejší nástroj na spracovanie textu?

zverejnenie: Vaša podpora pomáha udržiavať web v prevádzke! Za niektoré zo služieb, ktoré odporúčame na tejto stránke, získavame poplatok za sprostredkovanie.


Awk je najväčší nástroj na spracovanie textu, o ktorom ste nevedeli, že ho potrebujete. Ak však pracujete s veľkým množstvom údajov, pravdepodobne ste si mysleli napríklad: „Bolo by pekné extrahovať druhý a piaty stĺpec údajov z tejto tabuľky.“ A to v najjednoduchšej forme robí Awk.

Malá história

Veľa dní predtým, ako väčšina ľudí vedela, čo je relačná databáza – a takmer dve desaťročia pred vývojom MySQL – bolo v textových súboroch uložených veľké množstvo údajov. Pravda je, že veľa údajov je stále uložených týmto spôsobom. To platí najmä pre operačné systémy Unix. Napríklad súbor Unix / etc / passwd je iba textový súbor s jedným riadkom pre každého používateľa v systéme a každé pole pre používateľa oddelené dvojbodkou. Napríklad:

admin: *: 1001: 2001: Administrátor: / home / root: / home / sh
brian: *: 1002: 2002: Brian Kernighan: / home / brian: / home / bash

Na veľkých systémoch môžu takéto súbory typu passwd obsahovať tisíce riadkov. Môžete si predstaviť, že by mohli nastať prípady, keď by ste chceli mať úplný zoznam mien osôb, ktoré majú účty v počítači. V tomto prípade by to bolo piate pole. V roku 1977 tak traja programátori vytvorili všeobecný program na to. Boli to: Alfred Aho, Peter Weinberger a Brian Kernighan. A ich iniciálky AWK je to, ako Awk dostal meno.

Príklad Awk

V predvolenom nastavení Awk predpokladá, že polia sú oddelené medzerami. Ale môžete povedať Awkovi, aby použil iný znak pomocou príznaku -F (alebo –oddeľovač polí), aby dal Awk iný oddeľovač polí. V prípade súboru / etc / passwd by sme chceli použiť znak „:“.

Vzhľadom na znak oddeľovača Awk priradí prvé pole premennej $ 1, druhé pole premennej $ 2 atď. Celý riadok je priradený k $ 0. Ak to vyzerá dobre, môže to byť spôsobené tým, že skripty shellu Bourne a Bash spravujú parametre príkazového riadka.

Aj keď skripty Awk je možné vkladať do súborov, zvyčajne sa umiestnia na príkazový riadok ako súčasť príkazu Awk. Toto je jednoduchý príkaz awk, ktorý vydá všetky používateľské a skutočné mená účtov uvedených v súbore / etc / passwd:

awk -F: ” / etc / passwd

Výsledkom by bol nasledujúci výstup z nášho vzorového súboru / etc / passwd vyššie:

správca
brian Brian Kernighan

Ide o taký jednoduchý program Awk, aký existuje. Pravdepodobne však vidíte, že to samo o sebe je veľmi silné. Ľudia často také dôležité súbory uložia do tabuľky, odstránia nepotrebné stĺpce a výsledok uložia ako nový textový súbor. To je ťažkopádne, keď môžete urobiť to isté s Awkom za pár sekúnd. A to je len začiatok. Výstup môžete podmieniť; môžete úplne riadiť výstup; ak pracujete s číselnými údajmi, môžete s nimi robiť výpočty; a ešte oveľa viac.

Zdroje Awk

Awk je veľmi jednoduchý jazyk, ktorý sa dá naučiť. A na to je veľa zdrojov. Prejdeme si pár nižšie.

Online návody

Nižšie je uvedených niekoľko návodov, ktoré začínajú na samom začiatku a dostanú vás cez najdôležitejšie aspekty jazyka. Ktorý z nich bude pre vás najužitočnejší, záleží na vás.

  • Výukový program pre Grymoire Awk: Toto je vynikajúci úvod Bruce Barnetta k Awk. Vyskúšajte všetky tieto unixové príručky.
  • Bežné vlákna: Awk podľa príkladu: Toto je od IBM a poskytuje bezbolestný spôsob, ako sa naučiť Awk. Po dokončení práce sa uistite, že ste si vyskúšali časť 2.
  • Výučba Awk: Toto je úvodná časť výukového programu pre Awk, ktorá vás dokonca prevedie stiahnutím a inštaláciou na počítačoch so systémom Linux..
  • Awk Primer: tento tutoriál ide veľmi rýchlo, ale ak ste spokojní so skriptovaním shellu alebo ste Awk použili v minulosti, je to dobrá voľba.

knihy

Existuje veľa dobrých kníh, ktoré poskytujú základ pre Awk.

  • Programovací jazyk Awk od Aho a Kernighana: toto je pôvodná kniha o Awk. Na rozdiel od väčšiny takýchto kníh od pôvodných vývojárov je táto kniha naozaj dobrá a ľahko zrozumiteľná.
  • sed & Awk od Doughertyho a Robbinsa: je to klasika, ktorá sa zaoberá Awkom a editorom streamov (sed). Tieto dva sa často používajú spolu. Zaujímavé sú aj Sed a Awk: Pocket Reference, keď budete so systémami spokojní.
  • Programovanie AWK: Otázky a odpovede George Ducketta: je to zaujímavá kniha Kindle, ktorá je viac či menej kuchárkou. Obsahuje veľa skvelých otázok, ktoré rozšíria spôsob, akým si myslíte o Awk, a spôsoby, ako si myslíte, že sa dajú použiť.
  • Efektívne programovanie awk: Univerzálne spracovanie textu a porovnávanie vzorov od Arnolda Robbinsa: je to ako pokračovanie programu Awk Programming Lanuage. Prechádza hlbšie do jazyka a zameriava sa na Gnu verziu Awk, Gawk.

Implementácia Awk

Od prvého zavedenia v roku 1977 došlo k viacerým implementáciám Awk. V skutočnosti, v roku 1985 (predtým, ako bol uverejnený programovací jazyk Awk), sa Awk výrazne rozšíril. Táto verzia sa často označuje ako „nový Awk“ alebo nawk. V súčasnosti existuje niekoľko najpopulárnejších verzií.

  • Gawk: Toto je implementácia projektu Gnu v Awk. Je mimoriadne populárny a podporuje iné jazyky lepšie ako iné verzie.
  • BWK: Toto je „jediná pravda Awk“, pretože sa používa pre program Awk Programming Lanuage. Je široko používaný na FreeBSD.
  • Mawk: Toto je verzia, ktorú pôvodne napísal Mike Brennan, ale od roku 2009 ju udržiava a aktualizuje Thomas Dickey. Zameriava sa na rýchlosť.
  • BusyBox: Toto je všeobecný nástroj, ktorý poskytuje množstvo zjednodušených unixových nástrojov vrátane Awk.

Online fóra

Niekedy stačí položiť otázky. A na internete je veľa ľudí, ktorí dobre poznajú Awk. Tu je niekoľko lepších miest, kde môžete odpovedať na svoje otázky.

  • Comp.lang.awk Google Group: Toto je relatívne aktívne fórum, ktoré sa oplatí vyskúšať.
  • Stack Overflow Awk Questions: Toto je stránka s najnovšími otázkami, ktoré boli označené ako problémy s Awk. Je to skvelý odkaz a miesto, kde môžete položiť svoje vlastné otázky.
  • Awk Reddit: Toto je subreddit pre Awk. Nie je veľmi aktívny, ale v okolí je veľa informovaných ľudí a je dobré, aby ste na ne odpovedali..

zhrnutie

Awk je vynikajúci jazyk na spracovanie textu. A dokáže robiť úžasné veci, ak chcete jazyk posunúť dostatočne ďaleko. Zároveň je jeho syntax dostatočne jednoduchá, aby sa mohla rýchlo stať súčasťou vašej sady pracovných nástrojov. Zdroje uvedené tu by vám mali poskytnúť všetku pomoc, ktorú potrebujete.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map