20 awk príkladov

20 Awk Examples



V operačnom systéme Linux existuje mnoho pomocných nástrojov na vyhľadávanie a generovanie zostáv z textových údajov alebo súboru. Užívateľ môže ľahko vykonávať mnoho typov úloh hľadania, nahrádzania a generovania správ pomocou príkazov awk, grep a sed. awk nie je len príkaz. Je to skriptovací jazyk, ktorý je možné použiť z terminálu aj z súboru awk. Podporuje premenné, podmienené príkazy, polia, slučky atď. Ako ostatné skriptovacie jazyky. Dokáže čítať ľubovoľný obsah súboru po riadkoch a oddeľovať polia alebo stĺpce na základe konkrétneho oddeľovača. Podporuje tiež regulárny výraz na vyhľadávanie konkrétneho reťazca v textovom obsahu alebo súbore a vykonáva akcie, ak sa nájde zhoda. Ako môžete používať príkaz a skript awk, je v tomto návode ukázané pomocou 20 užitočných príkladov.

Obsah:

  1. awk s printf
  2. awk rozdeliť na biele miesto
  3. awk na zmenu oddeľovača
  4. awk s údajmi oddelenými tabulátorom
  5. awk s údajmi CSV
  6. awk regex
  7. awk, necitlivý na regex
  8. awk s premennou nf (počet polí)
  9. awk funkcia gensub ()
  10. awk s funkciou rand ()
  11. awk užívateľom definovaná funkcia
  12. awk ak
  13. awk premenné
  14. awk polia
  15. awk slučka
  16. awk, aby sa vytlačil prvý stĺpec
  17. awk, ak chcete vytlačiť posledný stĺpec
  18. awk s grep
  19. awk so súborom skriptu bash
  20. awk so sed

Použitie awk s printf

printf () funkcia sa používa na formátovanie akéhokoľvek výstupu vo väčšine programovacích jazykov. Túto funkciu je možné použiť s awk príkaz na generovanie rôznych typov formátovaných výstupov. awk príkaz používaný hlavne pre akýkoľvek textový súbor. Vytvorte textový súbor s názvom zamestnanec.txt s nižšie uvedeným obsahom, kde sú polia oddelené tabulátorom („ t“).







zamestnanec.txt



1001 John sena 40 000
1002 Jafar Iqbal 60 000
1003 Meher Nigar 30 000
1004 Jonny Liver 70000

Nasledujúci príkaz awk bude čítať údaje z zamestnanec.txt súbor po riadkoch a vytlačiť prvý súbor po formátovaní. Tu, %10 s n znamená, že výstup bude mať 10 znakov. Ak je hodnota výstupu menšia ako 10 znakov, medzery sa pridajú na začiatok hodnoty.



$ awk'{printf'%10 s n', $ 1}'zamestnanec.TXT

Výkon:





Prejdite na Obsah



awk rozdeliť na biele miesto

Predvolený oddeľovač slov alebo polí na rozdelenie akéhokoľvek textu je prázdne miesto. Príkaz awk môže brať textovú hodnotu ako vstup rôznymi spôsobmi. Vstupný text je odoslaný z zahodil príkaz v nasledujúcom príklade. Text „ Rád programujem ”Bude rozdelený podľa predvoleného oddeľovača, priestor , a tretie slovo sa vytlačí ako výstup.

$zahodil „Rád programujem“ | awk '{print $ 3}'

Výkon:

Prejdite na Obsah

awk na zmenu oddeľovača

Príkaz awk je možné použiť na zmenu oddeľovača pre akýkoľvek obsah súboru. Predpokladajme, že máte textový súbor s názvom phone.txt s nasledujúcim obsahom, kde sa ako oddeľovač polí obsahu súboru používa „:“.

phone.txt

+123: 334: 889: 778
+880: 1855: 456: 907
+9: 7777: 38644: 808

Oddeľovač zmeníte spustením nasledujúceho príkazu awk, ':' od „-“ k obsahu súboru, phone.txt .

$ cat phone.txt
$ awk '$ 1 = $ 1' FS = ':' OFS = '-' phone.txt

Výkon:

Prejdite na Obsah

awk s údajmi oddelenými tabulátorom

Príkaz awk má mnoho vstavaných premenných, ktoré sa používajú na čítanie textu rôznymi spôsobmi. Dvaja z nich sú FS a OFS . FS je oddeľovač vstupného poľa a OFS je premenná oddeľovača výstupného poľa. Použitie týchto premenných je uvedené v tejto časti. Vytvor tab oddelený súbor s názvom input.txt s nasledujúcim obsahom na testovanie použitia FS a OFS premenné.

Input.txt

Skriptovací jazyk na strane klienta
Serverový skriptovací jazyk
Databázový server
Webový server

Použitie premennej FS s tab

Nasledujúci príkaz rozdelí každý riadok súboru input.txt súbor založený na karte („ t“) a vytlačte prvé pole každého riadka.

$awk '{print $ 1}' FS=' t'input.txt

Výkon:

Použitie premennej OFS s tab

Nasledujúci príkaz awk vytlačí súbor 9th a 5th polia z „Ls -l“ výstup príkazu s oddeľovačom tabulátorov po vytlačení názvu stĺpca názov a Veľkosť . Tu, OFS premenná sa používa na formátovanie výstupu pomocou karty.

$ls -ten
$ls -ten | awk -v OFS=' t' 'BEGIN {printf'%s t%s n ',' Name ',' Size '} {print $ 9, $ 5}'

Výkon:

Prejdite na Obsah

awk s údajmi CSV

Obsah ľubovoľného súboru CSV je možné analyzovať niekoľkými spôsobmi pomocou príkazu awk. Vytvorte súbor CSV s názvom „ customer.csv “S nasledujúcim obsahom na použitie príkazu awk.

customer.txt

Id, meno, e -mail, telefón
1, Sophia, [email protected], (862) 478-7263
2, Amelia, [chránený elektronickou poštou], (530) 764-8000
3, Emma, ​​[chránený elektronickou poštou], (542) 986-2390

Čítanie jedného poľa súboru CSV

'-F' voľba sa používa s príkazom awk na nastavenie oddeľovača na rozdelenie každého riadka súboru. Nasledujúci príkaz awk vytlačí súbor názov oblasti zákazník.csv súbor.

$katcustomer.csv
$awk -F ',' '{print $ 2}'customer.csv

Výkon:

Čítanie viacerých polí kombináciou s iným textom

Nasledujúci príkaz vytlačí tri polia súboru customer.csv kombináciou textu nadpisu, Meno, e -mail a telefón . Prvý riadok súboru customer.csv súbor obsahuje názov každého poľa. NIE premenná obsahuje číslo riadka súboru, keď príkaz awk súbor analyzuje. V tomto prípade NR premenná slúži na vynechanie prvého riadka súboru. Na výstupe sa zobrazí 2nd, 3rda 4thpolia všetkých riadkov okrem prvého riadka.

$awk -F ',' 'NR> 1 {print' Meno: '$ 2', E -mail: '$ 3', Telefón: '$ 4}'customer.csv

Výkon:

Čítanie súboru CSV pomocou skriptu awk

awk skript je možné spustiť spustením súboru awk. V tomto príklade je znázornené, ako môžete vytvoriť súbor awk a spustiť ho. Vytvorte súbor s názvom awkcsv.awk s nasledujúcim kódom. ZAČAŤ kľúčové slovo sa používa v skripte na informovanie príkazu awk o vykonaní skriptu súboru ZAČAŤ časť pred vykonaním ďalších úloh. Tu oddeľovač polí ( FS ) sa používa na definovanie oddeľovača rozdelenia a 2nda 1svpolia sa vytlačia podľa formátu použitého vo funkcii printf ().

awkcsv.awk
ZAČAŤ{FS= ','} { printf '% 5s (% s) n',$2,$1}

Utekaj awkcsv.awk súbor s obsahom zákazník.csv súbor nasledujúcim príkazom.

$awk -fawkcsv.awk customer.csv

Výkon:

Prejdite na Obsah

awk regex

Regulárny výraz je vzor, ​​ktorý sa používa na vyhľadávanie ľubovoľného reťazca v texte. Rôzne typy zložitých úloh hľadania a nahrádzania je možné vykonávať veľmi jednoducho pomocou regulárneho výrazu. V tejto časti je ukázané niekoľko jednoduchých použití regulárneho výrazu pomocou príkazu awk.

Zodpovedajúci charakternastaviť

Nasledujúci príkaz bude zodpovedať slovu Blázon alebo bool alebo V pohode so vstupným reťazcom a vytlačte, ak sa slovo nájde. Tu, Bábika sa nebudú zhodovať a nevytlačia sa.

$printf „Blázon nV pohode nBábika nbool ' | awk '/[FbC] ool/'

Výkon:

Hľadaný reťazec na začiatku riadka

„^“ symbol sa používa v regulárnom výraze na vyhľadávanie akéhokoľvek vzoru na začiatku riadka. „ Linux “ v nasledujúcom príklade sa slovo vyhľadá na začiatku každého riadka textu. Tu dva riadky začínajú textom, „Linux “A tieto dva riadky sa zobrazia vo výstupe.

$zahodil -A „Linux je voľne použiteľný nJedná sa o softvér s otvoreným zdrojovým kódom nLinuxHint je
obľúbený blogový server '
| awk '/^Linux/'

Výkon:

Hľadaný reťazec na konci riadka

'$' symbol sa používa v regulárnom výraze na vyhľadávanie akéhokoľvek vzoru na konci každého riadka textu. „ Skript Slovo sa hľadá v nasledujúcom príklade. Tu dva riadky obsahujú slovo, Skript na konci riadku.

$zahodil -A „Skript PHP nJavaScript nVizuálne programovanie | awk '/Skript $/'

Výkon:

Vyhľadávanie vynechaním konkrétnej znakovej sady

„^“ symbol označuje začiatok textu, ak je použitý pred akýmkoľvek vzorom reťazca („ / ^… /“) alebo pred ľubovoľnou znakovou sadou deklarovanou symbolom ^ […] . Ak „^“ symbol sa používa v tretej zátvorke, [^…], potom definovaná sada znakov v zátvorke bude pri vyhľadávaní vynechaná. Nasledujúci príkaz vyhľadá každé slovo, ktoré nezačína 'F' ale končiac na „ ool '. V pohode a bool budú vytlačené podľa vzoru a textových údajov.

$ printf „Blázon nV pohode nBábika nbool ' |awk' / [^ F] ool /'

Výkon:

Prejdite na Obsah

awk, necitlivý na regex

Pri predvolenom nastavení regulárny výraz hľadá malé a veľké písmená pri vyhľadávaní ľubovoľného vzoru v reťazci. Vyhľadávanie bez rozlišovania malých a veľkých písmen je možné vykonať pomocou príkazu awk s regulárnym výrazom. V nasledujúcom príklade znížiť() funkcia sa používa na vyhľadávanie bez rozlišovania malých a veľkých písmen. Tu bude prvé slovo každého riadka vstupného textu prevedené na malé písmená pomocou znížiť() fungovať a zhodovať sa so vzorom regulárnych výrazov. toupper () Na tento účel je možné použiť aj funkciu, v tomto prípade musí byť vzor definovaný veľkým písmenom. Text definovaný v nasledujúcom príklade obsahuje hľadané slovo, 'Web “V dvoch riadkoch, ktoré sa vytlačia ako výstup.

$zahodil -A 'Vzhľad stránky nvývoj webových aplikácií nRámec ' | awk 'tolower (0 dolárov) ~ /^web /;'

Výkon:

Prejdite na Obsah

awk s premennou NF (počet polí)

NF je vstavaná premenná príkazu awk, ktorá sa používa na spočítanie celkového počtu polí v každom riadku vstupného textu. Vytvorte ľubovoľný textový súbor s viacerými riadkami a viacerými slovami. súbor input.txt Tu sa používa súbor, ktorý je vytvorený v predchádzajúcom príklade.

Použitie NF z príkazového riadka

Tu sa prvý príkaz používa na zobrazenie obsahu input.txt súbor a druhý príkaz sa používa na zobrazenie celkového počtu polí v každom riadku súboru pomocou NF premenná.

$ cat input.txt
$ awk '{print NF}' input.txt

Výkon:

Použitie NF v súbore awk

Vytvorte awk súbor s názvom count.awk pomocou nižšie uvedeného scenára. Keď sa tento skript spustí s akýmikoľvek textovými údajmi, potom sa ako výstup vytlačí obsah každého riadka s celkovými poľami.

count.awk

{vytlačiť $0}
{vytlačiť„[Celkové polia:“NF']'}

Skript spustite nasledujúcim príkazom.

$awk -fcount.awk input.txt

Výkon:

Prejdite na Obsah

awk funkcia gensub ()

getub () je substitučná funkcia, ktorá sa používa na vyhľadávanie reťazcov na základe konkrétneho oddeľovača alebo vzoru regulárnych výrazov. Táto funkcia je definovaná v „Gawk“ balík, ktorý nie je predvolene nainštalovaný. Syntax tejto funkcie je uvedená nižšie. Prvý parameter obsahuje vzor regulárneho výrazu alebo oddeľovač vyhľadávania, druhý parameter obsahuje náhradný text, tretí parameter udáva, ako sa bude vyhľadávanie vykonávať a posledný parameter obsahuje text, v ktorom bude táto funkcia použitá.

Syntax:

gensub(regexp, náhrada, ako[, cieľ])

Nainštalujte nasledujúci príkaz gawk balík na použitie getub () funkcia s príkazom awk.

$ sudo apt-get install gawk

Vytvorte textový súbor s názvom „ salesinfo.txt “S nasledujúcim obsahom na precvičenie tohto príkladu. Tu sú polia oddelené záložkou.

salesinfo.txt

Mojich 700 000
Tvojich 800 000
Streda 750000
Zbierajte 200 000
Pi 430000
So 820000

Spustite nasledujúci príkaz a prečítajte si číselné polia súboru salesinfo.txt zaevidujte a vytlačte súčet celej sumy predaja. Tu tretí parameter „G“ označuje globálne vyhľadávanie. To znamená, že vzor bude prehľadaný v celom obsahu súboru.

$awk '{x = gensub (' t ',' ',' G ', 2 doláre); printf x '+'} KONIEC {tlač 0} 'salesinfo.txt| bc -ten

Výkon:

Prejdite na Obsah

awk s funkciou rand ()

riadok () funkcia sa používa na generovanie ľubovoľného náhodného čísla väčšieho ako 0 a menšieho ako 1. Takže vždy vygeneruje zlomkové číslo menšie ako 1. Nasledujúci príkaz vygeneruje zlomkové náhodné číslo a vynásobí hodnotu číslom 10, aby získal číslo viac ako 1. Na použitie funkcie printf () bude vytlačené zlomkové číslo s dvoma číslicami za desatinnou čiarkou. Ak spustíte nasledujúci príkaz viackrát, potom získate vždy iný výstup.

$awk 'BEGIN {printf' Číslo je =%. 2f n ', rand ()*10}'

Výkon:

Prejdite na Obsah

awk užívateľom definovaná funkcia

Všetky funkcie, ktoré sú použité v predchádzajúcich príkladoch, sú vstavané funkcie. Vo svojom skripte awk však môžete deklarovať funkciu definovanú používateľom, ktorá bude vykonávať akúkoľvek konkrétnu úlohu. Predpokladajme, že chcete vytvoriť vlastnú funkciu na výpočet plochy obdĺžnika. Na vykonanie tejto úlohy vytvorte súbor s názvom „ area.awk “S nasledujúcim skriptom. V tomto prípade užívateľsky definovaná funkcia s názvom oblasť () je deklarovaný v skripte, ktorý vypočíta plochu na základe vstupných parametrov a vráti hodnotu oblasti. getline Tu sa používa príkaz na prevzatie vstupu od používateľa.

area.awk

# Vypočítajte plochu
funkciuoblasť(výška,šírka){
vrátiť savýška*šírka
}

# Spustí sa spustenie
ZAČAŤ{
vytlačiť„Zadajte hodnotu výšky:“
getline h< '-'
vytlačiť„Zadajte hodnotu šírky:“
getline w< '-'
vytlačiť'Area ='oblasť(h,v)
}

Spustite skript.

$awk -farea.awk

Výkon:

Prejdite na Obsah

awk ak príklad

awk podporuje podmienené príkazy ako ostatné štandardné programovacie jazyky. V tejto časti sú pomocou troch príkladov uvedené tri typy príkazov if. Vytvorte textový súbor s názvom items.txt s nasledujúcim obsahom.

items.txt

HDD Samsung 100 dolárov
Myš A4Tech
Tlačiareň HP 200 dolárov

Jednoduché, ak príklad :

nasledujúci príkaz načíta obsah súboru items.txt súbor a skontrolujte súbor 3rd hodnota poľa v každom riadku. Ak je hodnota prázdna, vytlačí chybové hlásenie s číslom riadku.

$awk '{if ($ 3 ==' ') print' V poli 'NR} chýba pole Cenaitems.txt

Výkon:

if-else príklad:

Nasledujúci príkaz vytlačí cenu položky, ak 3rdpole v riadku existuje, v opačnom prípade vytlačí chybové hlásenie.

$ awk„{if ($ 3 == '') print 'Chýba pole ceny'
else print 'cena položky je' $ 3} '
položky.TXT

Výkon:

if-else-if priklad:

Keď sa nasledujúci príkaz spustí z terminálu, bude vyžadovať vstup od používateľa. Vstupná hodnota sa bude porovnávať s každou podmienkou if, kým podmienka nie je pravdivá. Ak sa akákoľvek podmienka splní, vytlačí zodpovedajúcu známku. Ak sa vstupná hodnota nezhoduje s žiadnou podmienkou, tlač sa zlyhá.

$awk 'ZAČAŤ {vytlačiť' Zadajte značku: '
znak getline<'-'
ak (značka> = 90) vytlačte „A+“
inak, ak (značka> = 80) vytlačíte „A“
inak, ak (značka> = 70) vytlačíte „B+“
else print 'Fail'} '

Výkon:

Prejdite na Obsah

awk premenné

Deklarácia premennej awk je podobná deklarácii premennej shell. Je rozdiel v čítaní hodnoty premennej. Na prečítanie hodnoty sa v názve premennej škrupinovej premennej používa symbol „$“. Na prečítanie hodnoty však nie je potrebné používať „$“ s premennou awk.

Použitie jednoduchej premennej:

Nasledujúci príkaz deklaruje premennú s názvom „Stránka“ a tejto premennej je priradená hodnota reťazca. Hodnota premennej je vytlačená v nasledujúcom výkaze.

$awk 'BEGIN {site =' LinuxHint.com '; vytlačiť stránku} '

Výkon:

Použitie premennej na získanie údajov zo súboru

Nasledujúci príkaz vyhľadá slovo „Tlačiareň“ v súbore items.txt . Ak ktorýkoľvek riadok súboru začína na „Tlačiareň “, Potom uloží hodnotu 1sv , 2nd a 3rd polia do troch premenných. názov a cena budú vytlačené premenné.

$ awk'/ Printer/ {name = $ 1; brand = 2 $; price = 3 $; print' item name = 'name;
vytlačiť 'item price =' price} '
položky.TXT

Výkon:

Prejdite na Obsah

awk polia

V awk je možné použiť číselné aj súvisiace polia. Deklarácia premennej poľa v awk je rovnaká ako v iných programovacích jazykoch. V tejto časti sú uvedené niektoré použitia polí.

Asociatívne pole:

Indexom poľa bude ľubovoľný reťazec asociatívneho poľa. V tomto prípade je deklarované a vytlačené asociatívne pole troch prvkov.

$awk 'ZAČAŤ {
knihy ['Web Design'] = 'Učenie HTML 5';
knihy ['Web Programming'] = 'PHP a MySQL'
knihy ['PHP Framework'] = 'Learning Laravel 5'
printf '%s n%s n%s n', knihy ['Web Design'], knihy ['Web Programming'],
knihy ['Rámec PHP']} '

Výkon:

Numerické pole:

Číselné pole troch prvkov je deklarované a vytlačené oddelením tabulátora.

$ awk'ZAČAŤ {
číslo [0] = 80;
číslo [1] = 55;
číslo [2] = 76;

# prvkov tlačového poľa
printf 'Hodnoty poľa: %d t%d t%d n', číslo [0], číslo [1], číslo [2]; } '

Výkon:

Prejdite na Obsah

awk slučka

Awk podporuje tri typy slučiek. Použitie týchto slučiek je tu ukázané pomocou troch príkladov.

Kým slučka:

zatiaľ čo slučka, ktorá sa používa v nasledujúcom príkaze, bude iterovať 5 -krát a opustí príkaz loop for break.

$ awk 'ZAČAŤ {n = 1; pričom (n 5) prestávka; tlač n; n ++}} '

Výkon:

Pre slučku:

V prípade slučky, ktorá sa používa v nasledujúcom príkaze awk, sa vypočíta súčet od 1 do 10 a hodnota sa vytlačí.

$awk 'ZAČAŤ {súčet = 0; pre (n = 1; n<= 10; n++) sum=sum+n; print sum }'

Výkon:

Slučka do-while:

slučka do-while nasledujúceho príkazu vytlačí všetky párne čísla od 10 do 5.

$awk 'BEGIN {counter = 10; urobte {if (počítadlo%2 == 0) počítadlo tlače; počítadlo-}
while (počítadlo> 5)} '

Výkon:

Prejdite na Obsah

awk, aby sa vytlačil prvý stĺpec

Prvý stĺpec akéhokoľvek súboru je možné vytlačiť pomocou premennej $ 1 v awk. Ak však hodnota prvého stĺpca obsahuje viac slov, vytlačí sa iba prvé slovo prvého stĺpca. Použitím konkrétneho oddeľovača je možné prvý stĺpec vytlačiť správne. Vytvorte textový súbor s názvom students.txt s nasledujúcim obsahom. Tu prvý stĺpec obsahuje text dvoch slov.

Students.txt

Kaniz Fatema 30thdávka
Abir Hossain 35thdávka
Ján Abrahám 40thdávka

Spustite príkaz awk bez oddeľovača. Vytlačí sa prvá časť prvého stĺpca.

$awk '{print $ 1}'students.txt

Spustite príkaz awk s nasledujúcim oddeľovačom. Vytlačí sa celá časť prvého stĺpca.

$awk -F '\s\s' '{print $ 1}'students.txt

Výkon:

Prejdite na Obsah

awk, ak chcete vytlačiť posledný stĺpec

$ (NF) premennú je možné použiť na vytlačenie posledného stĺpca akéhokoľvek súboru. Nasledujúce príkazy awk vytlačia poslednú časť a celú časť posledného stĺpca súboru the students.txt súbor.

$awk '{print $ (NF)}students.txt
$awk -F '\s\s' '{print $ (NF)}students.txt

Výkon:

Prejdite na Obsah

awk s grep

grep je ďalší užitočný príkaz systému Linux na vyhľadávanie obsahu v súbore na základe ľubovoľného regulárneho výrazu. Ako je možné spoločne používať príkazy awk aj grep, ukazuje nasledujúci príklad. uchopenie príkaz sa používa na vyhľadávanie informácií o ID zamestnanca, „ 1002 ‘Od zamestnanec.txt súbor. Výstup príkazu grep bude odoslaný do awk ako vstupné údaje. 5% bonus sa spočíta a vytlačí na základe platu ID zamestnanca, „ 1002 ' príkazom awk.

$katzamestnanec.txt
$uchopenie '1002'zamestnanec.txt| awk -F ' t' '{print $ 2' will $ '(3 $ 5*/100' bonus '}'

Výkon:

Prejdite na Obsah

awk so súborom BASH

Rovnako ako ostatné príkazy Linux, príkaz awk je možné použiť aj v skripte BASH. Vytvorte textový súbor s názvom customers.txt s nasledujúcim obsahom. Každý riadok tohto súboru obsahuje informácie o štyroch poliach. Ide o ID zákazníka, meno, adresu a mobilné číslo, ktoré sú oddelené '/ '.

customers.txt

AL4934 / Charles M Brunner / 4838 Beeghley Street, Huntsville, Alabama / 256-671-7942
CA5455 / Virginia S Mota / 930 Bassel Street, VALLECITO, Kalifornia / 415-679-5908
IL4855 / Ann A Neale / 1932 Patterson Fork Road, Chicago, Illinois / 773-550-5107

Vytvorte bash súbor s názvom item_search.bash s nasledujúcim skriptom. Podľa tohto skriptu bude hodnota stavu prevzatá od používateľa a vyhľadaná v the customers.txt súbor od uchopenie príkaz a prešiel do príkazu awk ako vstup. Príkaz Awk bude čítať 2nd a 4th polia v každom riadku. Ak sa vstupná hodnota zhoduje s akoukoľvek stavovou hodnotou customers.txt súbor, potom sa údaje zákazníka vytlačia názov a telefónne číslo , v opačnom prípade správu vytlačí Nenašiel sa žiadny zákazník .

item_search.bash

#!/bin/bash
zahodil „Zadajte názov štátu:“
čítaťštát
zákazníkov=uchopenie '$ štát'customers.txt| awk -F '/' '{print' Meno zákazníka: '2 $,',
Mobilné číslo: '$ 4}'

keby [ '$ zákazníkov' !='' ];potom
zahodil $ zákazníkov
inak
zahodil „Nenašiel sa žiadny zákazník“
byť

Spustením nasledujúcich príkazov zobrazíte výstupy.

$katcustomers.txt
$bashitem_search.bash

Výkon:

Prejdite na Obsah

awk so sed

Ďalším užitočným vyhľadávacím nástrojom Linuxu je sed . Tento príkaz je možné použiť na vyhľadávanie aj nahradenie textu akéhokoľvek súboru. Nasledujúci príklad ukazuje použitie príkazu awk s sed príkaz. Tu príkaz sed vyhľadá všetky mená zamestnancov začínajúce na „ J “A prejde na príkaz awk ako vstup. awk vytlačí zamestnanca názov a ID po formátovaní.

$katzamestnanec.txt
$sed -n '/J/p'zamestnanec.txt| awk -F ' t' '{printf'%s (%s) n ', $ 2, $ 1}'

Výkon:

Prejdite na Obsah

Záver:

Po správnom filtrovaní údajov môžete pomocou príkazu awk vytvoriť rôzne typy zostáv na základe akýchkoľvek tabuľkových alebo oddelených údajov. Dúfam, že sa budete môcť naučiť, ako funguje príkaz awk, po precvičení príkladov uvedených v tomto návode.