Vyhledávání na webu

Jak číst Awk Input ze STDIN v Linuxu - část 7


V předchozích dílech série nástrojů Awk jsme se zabývali čtením vstupu většinou ze souboru(ů), ale co když chcete číst vstup z STDIN.

V této části 7 série Awk se podíváme na několik příkladů, kde můžete filtrovat výstup jiných příkazů namísto čtení vstupu ze souboru.

Začneme obslužným programem dir, který funguje podobně jako příkaz ls, v prvním příkladu níže použijeme výstup příkazu dir -l jako vstup pro Awk k vytištění uživatelského jména vlastníka, názvu skupiny a souborů, které /ona vlastní v aktuálním adresáři:

dir -l | awk '{print $3, $4, $9;}'

Podívejte se na další příklad, kde používáme výrazy awk, zde chceme vytisknout soubory vlastněné uživatelem root pomocí výrazu pro filtrování řetězců jako v příkazu awk níže:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Výše uvedený příkaz obsahuje porovnávací operátor (==), který nám pomáhá odfiltrovat soubory v aktuálním adresáři, které vlastní uživatel root. Toho je dosaženo pomocí výrazu $3== ”root ”.

Podívejme se na další příklad toho, kdy používáme operátor porovnání awk k přiřazení určitého řetězce.

Zde jsme použili obslužný program cat k zobrazení obsahu souboru s názvem tecmint_deals.txt a chceme zobrazit pouze nabídky typu Tech, takže spustíme následující příkazy:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

Ve výše uvedeném příkladu jsme použili operátor porovnání hodnoty ~ /pattern/, ale existují dva příkazy, které se pokusí vyvolat něco velmi důležitého.

Když spustíte příkaz se vzorem tech, nic se nevytiskne, protože neexistuje dohoda tohoto typu, ale s Tech získáte nabídky zadejte Tech.

Při používání tohoto operátoru porovnání buďte proto vždy opatrní, jak jsme viděli výše, rozlišují se malá a velká písmena.

Místo čtení vstupu ze souboru můžete vždy použít výstup jiného příkazu jako vstup pro awk, což je velmi jednoduché, jak jsme se podívali na výše uvedené příklady.

Doufám, že příklady byly dostatečně jasné, abyste jim porozuměli, pokud máte nějaké obavy, můžete je vyjádřit prostřednictvím sekce komentářů níže a nezapomeňte se podívat na další část série, kde se podíváme na funkce awk jako jsou proměnné, číselné výrazy a operátory přiřazení.