Jak používat příkaz awk v systému Linux k vyhodnocování souborů
Pomocí příkazu awk můžete procházet soubory a provádět určité akce. Základy tohoto příkazu systému Linux sahají až do roku 1977.
Co je příkaz awk v systému Linux?
Linux má skriptovací a programovací jazyk, který můžete použít k vyhodnocování a úpravám souborů. Nazývá se awk a jeho počátky sahají až do roku 1977. Název je odvozen od jmen tří vývojářů: Alfred Aho, Peter Weinberger a Brian Kernighan. Tento nástroj můžete snadno používat přes příkazový řádek nebo SSH (Secure Shell). Podobně jako při používání příkazu grep v Linuxu můžete příkaz awk použít k vyhledání určitých vzorců v souborech a pokud jsou splněny další podmínky, lze je upravit.
Jak funguje příkaz awk?
Awk používá kombinaci podmínek a instrukcí. Po spuštění příkazu projde soubor řádek po řádku a hledá určité podmínky. Pokud tyto podmínky v řádku najde, provede tam uvedenou instrukci. Pokud není nastavena žádná podmínka, bude instrukce provedena na každém řádku. Pokud nezadáte instrukci, provede se standardní instrukce z řádku zadání. To znamená, že můžete použít Linux awk k vyhledávání určitých termínů nebo příkladů v souborech.
Jak vypadá syntaxe awk?
Syntaxe příkazu awk v systému Linux vypadá následovně:
$ awk [Options] "Operation {Instructions}" [Target file]shellJaké možnosti má příkaz awk?
Máte k dispozici tři možnosti:
- -F [Oddělovač]: Tuto volbu můžete použít k nastavení oddělovače mezi soubory. Obvykle se jedná o jednu mezeru.
- -f [název souboru]: Tuto volbu můžete použít k nastavení souboru, ve kterém chcete spustit příkaz awk.
- -v: Tuto možnost použijte k přidání proměnné.
Příklady příkazu awk
Abychom lépe pochopili, jak lze ask používat, uvedeme několik příkladů. V tomto případě používáme soubor s názvem example.txt, který obsahuje seznam měst, zemí a kontinentů v jednotlivých sloupcích. Vypadá takto:
City Country Continent
Washington D.C USA America
Paris France Europe
Hanoi Vietnam Asia
Abuja Nigeria AfricashellPokud chcete vypsat celý soubor, musíte použít následující příkaz:
$ awk "{print $0}" example.txtshellPokud však chcete zobrazit pouze jednotlivé sloupce, můžete použít samostatný příkaz. V našem případě se jedná o první a třetí sloupec:
$ awk "{print $1, $3}" example.txtshellVýsledkem bude následující výstup:
Washington D.C America
Paris Europe
Hanoi Asia
Abuja Africa