Páni

15 Zajímavé příkazy awk

15 Zajímavé příkazy awk
Tento článek vás provede některými zajímavými příkazy awk a kdy je použít. Čtěte dále a dozvíte se to!

Úvod do awk

AWK je populární jazyk v systémech UNIX a Linux. Název dostal od autorů: Alfreda Aho, Petera Weinbergera a Briana Kernighana. Příkaz awk umožňuje přístup k programovacímu jazyku AWK, který je určen ke zpracování dat v textových proudech.

Populární pro skenování vzorů a zjednodušení složitých operací, awk vám pomůže psát efektivní příkazy pro definování textových vzorů v souboru. Příkaz awk poté zpracuje tyto příkazy čtením po jednom řádku a provede akci na základě dané podmínky.

Jednoduše řečeno, awk vyhledá a nahradí text a pomůže seřadit, ověřit nebo indexovat zadaná data.

Vlastnosti AWK

awk přichází se spoustou jedinečných funkcí:

  1. V awk není nutná žádná kompilace
  2. Často se používá pro extrakci dat
  3. Běžně se používá k provádění manipulace s textem
  4. Pomáhá generovat výsledky podle potřeby.

Nyní prozkoumáme sílu příkazů awk.

15 Zajímavé příkazy awk

Zde je kompilovaný seznam několika zajímavých příkazů awk:

  1. Tisk náhodných čísel v sadě - Předpokládejme, že chcete vytisknout několik náhodných čísel z vybraného fondu. Můžete určit množství náhodných čísel z tohoto fondu a požádat awk o jeho vytištění. Zde je příklad: vytiskneme 10 čísel od 0 do 1000. Příkaz awk pro toto tedy bude následující: awk 'BEGIN for (i = 1; i <= 10; i++)
    print int (1001 * rand ()) '
  1. Hledání foo nebo baru - Co když chcete napsat řádek, ve kterém chcete provést jednoduché hledání foo nebo baru? Zde je příkaz, který vám umožní právě toto: if (/ foo / || / bar /)
    tisk "Nalezeno!"
  1. Přeskupení pole - Pokud chcete vytisknout konkrétní pole v konkrétní objednávce, awk to udělá za vás. Předpokládejme, že chcete vytisknout prvních 5 polí konkrétní sady v jednom poli na řádek, můžete použít následující příkaz: awk 'i = 1
    zatímco já <= 3)
    vytisknout $ i
    i++

    ' vložte soubor
  1. Rozdělení čáry - V jakékoli dané sadě souborů může awk pomoci rozdělit řádek na pole, kde x je název pole: $ awk 'print $ x, $ x' xyz.txt
  1. Spouštění několika příkazů najednou - Chcete-li spustit několik příkazů najednou, můžete k zadání obou příkazů použít středník: $ echo "Dobré ráno! Jack "| awk '$ 2 =" Jill "; tisknout $ 0'
  1. Provádění awk skriptu - Chcete-li spustit skript awk z konkrétního souboru, můžete vytvořit soubor sum_column a vložit do něj následující skript: #!/ usr / bin / awk -f
    ZAČNĚTE součet = 0
    součet = součet + $ x
    END print sum

    Ve výše uvedeném skriptu se x rovná sloupci, který musíte zadat do souboru. Po úspěšném dokončení tohoto úkolu můžete pomocí následujícího příkazu zobrazit součet sloupce x ve vstupním souboru:

    awk -f sum_column input_file.
  1. Pomocí -f - Při kódování se může často zdát nepraktické odkazovat na terminál. awk používá -f k provedení vyhledávání ze skriptu file: awk -f.awk vstupní soubor
  1. Provádění matematických funkcí - Můžete také použít awk pro jednoduché matematické funkce: awk 'sum = $ 2 + $ 3 + $ 4; avg = součet / 3
    > vytisknout známky 1 $, průměr '
  1. Hello World v awk - Jednoduchý Hello World můžete vytisknout v awk pomocí následujícího příkazu: awk „BEGIN print“ Hello World!!„“

    Můžete také vytvořit program Hello World. Následující kód nejen vytiskne všudypřítomnou ahoj zprávu, ale také vygeneruje informace v záhlaví:

    $ awk 'BEGIN print "Hello World!" '
  1. Tisk celkového počtu bytů - Celkový počet bajtů použitých soubory můžete zjistit pomocí následujícího příkazu: ls -l . | awk 'x + = $ 5; KONEC \
    print "total bytes:" x '
    celkem bajtů: 7449362
  1. Anonymizace protokolu Apache - K anonymizaci protokolu Apache můžete použít následující kód: cat apache-anon-noadmin.přihlásit | \
    awk 'funkce ri (n) \
    Return int (n * rand ()); \
    BEGIN srand (); Pokud (! \
    (5 $ v jacku)) \
    jack [$ 5] = sprintf ("% d.% d.% d.% d ", \
    ri (255), ri (255) \
    , ri (255), ri (255)); \
    $ 5 = jack [$ 5]; tisk __g5_token5b610ba53dbe4 '
  1. Provoz v řadách - Pokud máte adresu, kterou chcete řadit do řádků, můžete tak učinit pomocí následujícího příkazu: BEGIN RS = ""; FS = "\ n"

    tisk "Název je:", $ 1
    tisk "Adresa je:", 2 $
    tisk "Město a stát jsou:", 3 $
    tisk ""
  1. Pomocí smyčky while - Smyčka while pokračuje v provádění akce, která mu byla dána, v opakovaném procesu, dokud podmínka není pravdivá. Například pro tisk čísel od 1 do 100 můžete použít následující kód: awk 'BEGIN i = 1; zatímco já < 100) print i; ++i '
  1. Pomocí smyčky do-while - V této smyčce se podmínka provede na konci smyčky, i když je příkaz nepravdivý. Například pro tisk čísel od 1 do 100 pomocí smyčky do-while můžete použít následující kód: awk 'BEGIN i = 1; do print i; ++ i while (i < 100) '
  1. Pomocí ZAČÁTKU a KONEC - Klíčové slovo BEGIN se používá k vytvoření záhlaví pro zpracování vašeho záznamu: $ awk 'BEGIN print "XXX"

    Stejným způsobem se po zpracování dat použije klíčové slovo END:

    END print "Zápatí souboru" '

Tím končí seznam 15 zajímavých příkazů awk. Můžete je vyzkoušet a zobrazit výsledky. Doufám, že vám to bude užitečné. Pokud vás tento článek zaujal, můžete si prohlédnout Mastering Linux Shell Scripting - druhé vydání. V této knize najdete vše, co potřebujete vědět, abyste zvládli skriptování prostředí a mohli se informovaně rozhodovat o prvcích, které používáte.

Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...
Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...