10 najlepszych przykładów AWK

10 najlepszych przykładów AWK

20 przykładów AWK

W systemie operacyjnym Linux istnieje wiele narzędzi narzędziowych do wyszukiwania i generowania raportu z danych lub pliku. Użytkownik może łatwo wykonywać wiele rodzajów wyszukiwania, zastępowania i zgłaszania zadań przy użyciu poleceń AWK, GREP i SED. AWK to nie tylko polecenie. Jest to język skryptowy, którego można używać zarówno z pliku terminalu, jak i AWK. Obsługuje zmienną, instrukcję warunkową, tablicę, pętle itp. Podobnie jak inne języki scenariusze. Może odczytać dowolną linię zawartości pliku według linii i oddzielić pola lub kolumny na podstawie określonego ogranicznika. Obsługuje również wyrażenie regularne wyszukiwania określonego ciągu w treści tekstowej lub pliku i podejmuje działania, jeśli znaleziono jakikolwiek mecz. Jak możesz używać polecenia AWK, a skrypt jest pokazany w tym samouczku za pomocą 20 przydatnych przykładów.

Zawartość:

  1. AWK z printf
  2. Awk do podziału na białej przestrzeni
  3. AWK, aby zmienić ogranicznik
  4. AWK z danymi podłączonymi przez Tab
  5. AWK z danymi CSV
  6. AWK Regex
  7. AWK Case Niesensensowna Regex
  8. AWK ze zmienną NF (liczba pól)
  9. funkcja AWK gensub ()
  10. Awk z funkcją rand ()
  11. Funkcja zdefiniowana przez użytkownika AWK
  12. Awk If
  13. zmienne AWK
  14. tablice AWK
  15. Awk Loop
  16. AWK, aby wydrukować pierwszą kolumnę
  17. AWK, aby wydrukować ostatnią kolumnę
  18. Awk z Grep
  19. AWK z plik skryptu Bash
  20. Awk z sed

Za pomocą AWK z printf

printf () Funkcja służy do sformatowania dowolnego wyjścia w większości języków programowania. Tej funkcji można użyć z Awk polecenie do generowania różnych rodzajów wyników sformatowanych. polecenie AWK używane głównie dla dowolnego pliku tekstowego. Utwórz plik tekstowy o nazwie pracownik.tekst z zawartością podaną poniżej, gdzie pola są oddzielone przez Tab („\ t”).

pracownik.tekst

1001 John Sena 40000
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Triver 70000

Poniższe polecenie AWK odczytuje dane z pracownik.tekst linia pliku po linii i wydrukuj pierwszy złożony po sformatowaniu. Tutaj, "%10s \ n”Oznacza, że ​​wyjście będzie miało 10 znaków. Jeśli wartość wyjścia jest mniejsza niż 10 znaków, przestrzenie zostanie dodane z przodu wartości.

$ awk 'printf "%10s \ n", 1 $ „.tekst

Wyjście:

Przejdź do treści

Awk do podziału na białej przestrzeni

Domyślne słowo lub separator pola do podziału dowolnego tekstu to biała przestrzeń. Polecenie AWK może przyjąć wartość tekstową jako dane wejściowe na różne sposoby. Tekst wejściowy jest przekazywany z Echo Polecenie w poniższym przykładzie. Tekst, 'Lubię programowanie„Zostanie podzielony domyślnie separator, przestrzeń, a trzecie słowo zostanie wydrukowane jako wyjście.

$ echo „Lubię programowanie” | awk 'drukuj 3 $'

Wyjście:

Przejdź do treści

AWK, aby zmienić ogranicznik

Polecenie AWK można użyć do zmiany ogranicznika dla dowolnej zawartości pliku. Załóżmy, że masz nazwany plik tekstowy telefon.tekst z następującą zawartością, gdzie „:” jest używany jako separator pola zawartości pliku.

telefon.tekst

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

Uruchom następujące polecenie AWK, aby zmienić ogranicznik, „:” przez '-' do treści pliku, telefon.tekst.

$ CAT Telefon.tekst
$ awk '$ 1 = 1 $' fs = ":" ofs = "-" telefon.tekst

Wyjście:

Przejdź do treści

AWK z danymi podłączonymi przez Tab

Polecenie AWK ma wiele wbudowanych zmiennych, które służą do odczytu tekstu na różne sposoby. Dwa z nich są Fs I Ofs. Fs jest separatorem pola wejściowego i Ofs to zmienne separatora pola wyjściowego. Zastosowania tych zmiennych pokazano w tym rozdziale. Stwórz patka oddzielony plik o nazwie wejście.tekst z następującą zawartością do przetestowania zastosowań Fs I Ofs zmienne.

Wejście.tekst

Język skryptowy po stronie klienta
Język skryptowy po stronie serwera
Serwer bazy danych
Serwer internetowy

Za pomocą zmiennej FS z TAB

Następujące polecenie podzieli każdy wiersz wejście.tekst plik oparty na karcie („\ t”) i wydrukuj pierwsze pole każdej linii.

$ awk 'print $ 1' fs = '\ t' wejście.tekst

Wyjście:

Korzystanie z zmiennej z TAB

Następujące polecenie AWK wydrukuje 9th I 5th Pola „ls -l” Wyjście polecenia z separatorem zakładki po wydrukowaniu tytułu kolumny „Nazwa" I "Rozmiar". Tutaj, Ofs Zmienna służy do sformatowania wyjścia przez kartę.

$ ls -l
$ ls -l | awk -v ofs = '\ t' 'start printf "%s \ t%s \ n", „nazwa”, „rozmiar” drukuj 9 $, 5 $ ”

Wyjście:

Przejdź do treści

AWK z danymi CSV

Treść dowolnego pliku CSV można przeanalizować na wiele sposobów za pomocą polecenia AWK. Utwórz plik CSV o nazwie 'klient.CSV„Z następującą treść, aby zastosować polecenie AWK.

klient.tekst

ID, nazwa, e -mail, telefon
1, Sophia, [email protected], (862) 478-7263
2, Amelia, [email protected], (530) 764-8000
3, Emma, ​​[email protected], (542) 986-2390

Czytanie pojedynczego pola pliku CSV

'-F' Opcja jest używana z poleceniem AWK do ustawienia ograniczenia w celu podziału każdego wiersza pliku. Następujące polecenie AWK wydrukuje nazwa pole klient.CSV plik.

$ CAT Klient.CSV
$ awk -f "," 'drukuj 2 $'.CSV

Wyjście:

Czytanie wielu pól poprzez połączenie z innym tekstem

Następujące polecenie wydrukuje trzy pola klient.CSV Łącząc tekst tytułowy, Nazwa, e -mail i telefon. Pierwsza linia klient.CSV Plik zawiera tytuł każdego pola. Nr Zmienna zawiera numer linii pliku, gdy polecenie AWK analizuje plik. W tym przykładzie, nr Zmienna służy do pominięcia pierwszego wiersza pliku. Wyjście pokaże 2Nd, 3r & D i 4th Pola wszystkich linii oprócz pierwszej linii.

$ awk -f "," 'nr> 1 drukuj "Nazwa:" $ 2 ", e -mail:„ 3 $ ”, telefon:„ 4 $ ”klient.CSV

Wyjście:

Czytanie pliku CSV za pomocą skryptu AWK

Skrypt AWK można wykonać poprzez uruchomienie pliku AWK. Jak możesz utworzyć plik AWK, a uruchomić plik jest pokazany w tym przykładzie. Utwórz plik o nazwie AWKCSV.Awk z następującym kodem. ZACZYNAĆ Słowo kluczowe jest używane w skrypcie do informowania polecenia AWK do wykonania skryptu ZACZYNAĆ Część najpierw przed wykonaniem innych zadań. Tutaj separator pola (Fs) służy do zdefiniowania rozkładu i 2Nd i 1St Pola zostaną wydrukowane zgodnie z formatem używanym w funkcji printf ().

AWKCSV.Awk
Rozpocznij fs = "," printf "%5s (%s) \ n", 2 $, 1 $

Uruchomić AWKCSV.Awk plik z treścią klient.CSV plik według następującego polecenia.

$ awk -f awkcsv.klient AWK.CSV

Wyjście:

Przejdź do treści

AWK Regex

Wyrażenie regularne to wzór używany do wyszukiwania dowolnego ciągu w tekście. Różne rodzaje skomplikowanych wyszukiwania i zastępowania zadań można bardzo łatwo wykonać za pomocą wyrażenia regularnego. Niektóre proste zastosowania wyrażenia regularnego z poleceniem AWK pokazano w tej sekcji.

Pasujący zestaw znaków

Poniższe polecenie będzie pasować do słowa Głupiec lub bool Lub Fajny z ciągiem wejściowym i wydrukuj, jeśli słowo zapoznaje się. Tutaj, LALKA nie pasuje i nie drukuje.

$ printf "głupiec \ ncool \ ndoll \ nbool" | awk '/[fbc] ool/'

Wyjście:

Wyszukiwanie ciągów na początku wiersza

„^” Symbol jest używany w wyrażeniu regularnym do wyszukiwania dowolnego wzoru na początku linii. 'Linux ' Słowo zostanie przeszukane na początku każdego wiersza tekstu w poniższym przykładzie. Tutaj dwa wiersze zaczynają się od tekstu, „Linux„I te dwie linie zostaną pokazane na wyjściu.

$ echo -e "Linux może używać \ n Jest to oprogramowanie typu open source \ nlinuxhint
Popularna strona blogowa „| AWK '/^Linux/'

Wyjście:

Poszukiwanie ciągów na końcu wiersza

„$” Symbol jest używany w wyrażeniu regularnym do wyszukiwania dowolnego wzoru na końcu każdego wiersza tekstu. 'Scenariusz„Słowo jest przeszukiwane w poniższym przykładzie. Tutaj dwa wiersze zawierają słowo, Scenariusz Na końcu linii.

$ echo -e "php script \ njavascript \ nvisual Programming" | awk '/script $/'

Wyjście:

Wyszukiwanie poprzez pominięcie określonego zestawu znaków

„^” Symbol wskazuje początek tekstu, gdy jest używany przed dowolnym wzorem łańcuchowym (' /^… /') lub przed zadeklarowanym przez jakiekolwiek postacie ^[…]. Jeśli „^” Symbol jest używany wewnątrz trzeciego wspornika, [^…] Następnie zdefiniowany zestaw znaków wewnątrz wspornika zostanie pominięty w momencie wyszukiwania. Poniższe polecenie przeszuka każde słowo, które nie zaczyna się od 'F' Ale kończąc na 'ool'. Fajny I Bool zostaną wydrukowane zgodnie z danymi wzoru i tekstu.

$ printf "głupiec \ ncool \ ndoll \ nbool" | awk '/[^f] ool/'

Wyjście:

Przejdź do treści

AWK Case Niesensensowna Regex

Domyślnie wyrażenie regularne wrażliwe na poszukiwanie wrażliwości podczas przeszukiwania dowolnego wzorca w ciągu. Wyszukiwanie niewrażliwych na sprawę można przeprowadzić przez polecenie AWK z wyrażeniem regularnym. W poniższym przykładzie, obniżyć() Funkcja służy do wykonywania nieczułych wyszukiwania. Tutaj pierwsze słowo każdego wiersza tekstu wejściowego zostanie przekonwertowane na niższy przypadek za pomocą obniżyć() Funkcja i dopasuj do wzoru wyrażenia regularnego. Toupper () W tym celu można również użyć funkcji, w tym przypadku wzór musi być zdefiniowany przez całą literę. Tekst zdefiniowany w poniższym przykładzie zawiera słowo wyszukiwania, 'sieć„W dwóch liniach, które zostaną wydrukowane jako wyjście.

$ echo -e "Projektowanie stron internetowych \ nWeb Development \ nframework" | Awk 'Tolower (0 USD) ~ /^Web /;'

Wyjście:

Przejdź do treści

AWK ze zmienną NF (liczba pól)

Nf jest wbudowaną zmienną polecenia AWK, która służy do zliczania całkowitej liczby pól w każdym wierszu tekstu wejściowego. Utwórz dowolny plik tekstowy z wieloma wierszami i wieloma słowami. Wejście.tekst Plik jest tutaj używany, który jest tworzony w poprzednim przykładzie.

Korzystanie z NF z wiersza poleceń

Tutaj pierwsze polecenie służy do wyświetlania zawartości wejście.tekst Plik i drugie polecenie służy do wyświetlania całkowitej liczby pól w każdym wierszu pliku za pomocą Nf zmienny.

Wejście $ CAT.tekst
$ awk 'print nf'.tekst

Wyjście:

Korzystanie z NF w pliku AWK

Utwórz plik AWK o nazwie liczyć.Awk ze skryptem podanym poniżej. Kiedy ten skrypt zostanie wykonany z dowolnymi danymi tekstowymi, każda zawartość linii z całkowitymi pól zostanie wydrukowana jako wyjście.

liczyć.Awk

Drukuj 0 $
print "[Total Fields:" nf "]"

Uruchom skrypt przez następujące polecenie.

$ AWK -f Count.Wejście AWK.tekst

Wyjście:

Przejdź do treści

funkcja AWK gensub ()

getSub () jest funkcją podstawienia, która jest używana do wyszukiwania ciągów w oparciu o konkretne ograniczenie lub wzór wyrażenia regularnego. Ta funkcja jest zdefiniowana w 'gapić się' pakiet, który nie jest domyślnie zainstalowany. Składnia tej funkcji podano poniżej. Pierwszy parametr zawiera wzór wyrażenia regularnego lub ograniczenie wyszukiwania, drugi parametr zawiera tekst zastępczy, trzeci parametr wskazuje, w jaki sposób zostanie wykonane wyszukiwanie, a ostatni parametr zawiera tekst, w którym zastosowano tę funkcję.

Składnia:

Gensub (RegexP, zastępca, jak [, cel])

Uruchom następujące polecenie, aby zainstalować gapić się pakiet do używania getSub () Funkcja z poleceniem AWK.

$ sudo apt-get instaluj gawk

Utwórz plik tekstowy o nazwie 'Salesinfo.tekst„z następującą treścią do ćwiczenia tego przykładu. Tutaj pola są oddzielone za pomocą zakładki.

Salesinfo.tekst

Mon 700000
Wt 800000
Wed 750000
Czw 200000
FRI 430000
SAT 820000

Uruchom następujące polecenie, aby odczytać pola numeryczne Salesinfo.tekst Złóż i wydrukuj sumę całej kwoty sprzedaży. Tutaj trzeci parametr „G” wskazuje na globalne wyszukiwanie. Oznacza to, że wzór zostanie przeszukany w pełnej zawartości pliku.

$ awk 'x = gensub („\ t”, „”, „g”, 2 $); printf x "+" end print 0 'salesinfo.txt | BC -L

Wyjście:

Przejdź do treści

Awk z funkcją rand ()

skraj() Funkcja służy do generowania dowolnej liczby losowej większej niż 0 i mniej niż 1. Zatem zawsze generuje liczbę ułamkową mniejszą niż 1. Poniższe polecenie wygeneruje ułamkowy liczba losowa i pomnoży wartość z 10, aby uzyskać liczbę więcej niż 1. Liczba ułamkowa z dwoma cyframi po wydrukowaniu punktu dziesiętnego do zastosowania funkcji printf (). Jeśli uruchomisz następujące polecenie wiele razy, otrzymasz inne wyjście za każdym razem.

$ awk 'start printf "numer to =%.2f \ n ", rand ()*10 '

Wyjście:

Przejdź do treści

Funkcja zdefiniowana przez użytkownika AWK

Wszystkie funkcje używane w poprzednich przykładach są wbudowanymi funkcjami. Ale możesz zadeklarować funkcję zdefiniowaną przez użytkownika w skrypcie AWK, aby wykonać dowolne konkretne zadanie. Załóżmy, że chcesz utworzyć niestandardową funkcję, aby obliczyć obszar prostokąta. Aby wykonać to zadanie, utwórz plik o nazwie 'obszar.Awk„Z następującym skryptem. W tym przykładzie nazwana definiowana przez użytkownika funkcja obszar() jest zadeklarowane w skrypcie, który oblicza obszar na podstawie parametrów wejściowych i zwraca wartość obszaru. Getline Polecenie jest używane tutaj do przyjmowania danych wejściowych od użytkownika.

obszar.Awk

# Oblicz obszar
obszar funkcji (wysokość, szerokość)
Wysokość powrotu*Szerokość

# Rozpoczyna wykonanie
ZACZYNAĆ
Wydrukuj „Wprowadź wartość wysokości:”
Zdobądź linię h < "-"
Wydrukuj „Wprowadź wartość szerokości:”
Getline W < "-"
Drukuj „obszar =” (H, W)

Uruchom skrypt.

$ AWK -F Obszar.Awk

Wyjście:

Przejdź do treści

Awk Jeśli przykład

AWK obsługuje instrukcje warunkowe, takie jak inne standardowe języki programowania. Trzy rodzaje instrukcji IF pokazano w tej sekcji przy użyciu trzech przykładów. Utwórz plik tekstowy o nazwie rzeczy.tekst z następującą treścią.

rzeczy.tekst

HDD Samsung 100 $
Mysz A4tech
Drukarka HP 200 $

Prosty, jeśli przykład:

śledzi polecenie, przeczyta treść rzeczy.tekst Plik i sprawdź 3r & D Wartość pola w każdej linii. Jeśli wartość jest pusta, wydrukuje komunikat o błędzie z numerem wiersza.

$ awk 'if ($ 3 == "") Drukuj „Pole ceny brakuje w linii„ nr ”.tekst

Wyjście:

Przykład IF-Else:

Następujące polecenie wydrukuje cenę elementu, jeśli 3r & D pole istnieje w wierszu, w przeciwnym razie wydrukuje komunikat o błędzie.

$ awk 'if (3 $ == "") Drukuj „Brakuje pole ceny”
w przeciwnym razie wydruku „cena pozycji to produkty„ 3 USD ”.tekst

Wyjście:

IF-ELSE-IF Przykład:

Kiedy następujące polecenie zostanie wykonane z terminala, wówczas wejdzie od użytkownika. Wartość wejściowa zostanie porównana z każdym warunkiem, aż warunek będzie prawdziwy. Jeśli jakikolwiek warunek stanie się prawdziwy, wydrukuje odpowiednią ocenę. Jeśli wartość wejściowa nie pasuje do żadnego warunku, to wydrukuje nieudana awaria.

$ awk 'start drukuj "wprowadź znak:"
Getline Mark < "-"
if (mark> = 90) wydrukuj „a+”
w przeciwnym razie if (mark> = 80) wydrukuj „a”
else if (mark> = 70) wydrukuj „b+”
w przeciwnym razie wydrukuj „upadek”

Wyjście:

Przejdź do treści

zmienne AWK

Deklaracja zmiennej AWK jest podobna do deklaracji zmiennej powłoki. Istnieje różnica w odczytaniu wartości zmiennej. Symbol „$” jest używany z nazwą zmienną dla zmiennej powłoki do odczytania wartości. Ale nie ma potrzeby używania „$” ze zmienną AWK do odczytania wartości.

Korzystanie z prostej zmiennej:

Poniższe polecenie zadeklaruje zmienną wymienioną 'strona' a wartość ciągu jest przypisana do tej zmiennej. Wartość zmiennej jest drukowana w następnej instrukcji.

$ awk 'start site = "Linuxhint.com "; witryna drukująca ''

Wyjście:

Korzystanie z zmiennej do pobierania danych z pliku

Następujące polecenie przeszuka słowo 'Drukarka' w pliku rzeczy.tekst. Jeśli jakaś linia pliku zaczyna się od 'Drukarka„Następnie będzie przechowywać wartość 1St, 2Nd I 3r & D pola w trzy zmienne. nazwa I cena Zmienne zostaną wydrukowane.

$ awk '/ drukarka/ name = 1 $; marka = 2 $; cena = 3 $; print "item name =" name;
wydrukuj „pozycję ceny =„ cena ”.tekst

Wyjście:

Przejdź do treści

tablice AWK

Zarówno tablice numeryczne, jak i powiązane mogą być używane w AWK. Deklaracja zmiennej tablicy w AWK jest taka sama w przypadku innych języków programowania. W tej sekcji pokazano niektóre zastosowania tablic.

Tablica asocjacyjna:

Indeks tablicy będzie dowolnym ciągiem dla tablicy asocjacyjnej. W tym przykładzie deklarowana i drukowana jest szereg trzech elementów.

$ awk 'start
Książki [„Projekt strony internetowej”] = „Uczenie się HTML 5”;
Książki [„Programowanie internetowe”] = "PHP i MySQL"
Książki [„PHP Framework”] = „Uczenie się Laravel 5”
printf "%s \ n%s \ n%s \ n", książki [„projekt internetowy”], książki [„Programowanie internetowe”],
Książki [„PHP Framework”] '

Wyjście:

Tablica numeryczna:

Numeryczna tablica trzech elementów jest zadeklarowana i wydrukowana przez karta rozdzielająca.

$ awk 'start
liczba [0] = 80;
liczba [1] = 55;
liczba [2] = 76;

# Elementy drukowania tablicy
printf "Wartości tablicy:%d \ t%d \ t%d \ n", liczba [0], liczba [1], liczba [2]; '

Wyjście:

Przejdź do treści

Awk Loop

AWK obsługiwane są trzy rodzaje pętli. Zastosowania tych pętli pokazano tutaj, używając trzech przykładów.

Podczas pętli:

Podczas gdy pętla używana w następującym poleceniu będzie iterowana przez 5 razy i wyjdzie z instrukcji pętli dla przerwy.

$ awk 'start n = 1; podczas gdy (n 5) przerwa; wydrukować n; n ++ '

Wyjście:

Dla pętli:

W przypadku pętli, która jest używana w następującym poleceniu AWK, obliczy sumę od 1 do 10 i wydrukuje wartość.

$ awk 'start sum = 0; dla (n = 1; n <= 10; n++) sum=sum+n; print sum '

Wyjście:

Pętla do zrobienia:

Pętla do zrobienia następującego polecenia wydrukuje wszystkie liczby równe od 10 do 5.

$ awk 'start Counter = 10; do if (Counter%2 == 0) Drukuj licznik; lada--
while (licznik> 5) '

Wyjście:

Przejdź do treści

AWK, aby wydrukować pierwszą kolumnę

Pierwszą kolumnę dowolnego pliku można wydrukować za pomocą zmiennej 1 USD w AWK. Ale jeśli wartość pierwszej kolumny zawiera wiele słów, to tylko pierwsze słowo pierwszej kolumny drukuje. Korzystając z określonego ogranicznika, pierwszą kolumnę można poprawnie wydrukować. Utwórz plik tekstowy o nazwie studenci.tekst z następującą treścią. Tutaj pierwsza kolumna zawiera tekst dwóch słów.

Studenci.tekst

Kaniz Fatema 30th seria
Abir Hossain 35th seria
John Abraham 40th seria

Uruchom polecenie AWK bez żadnego ograniczenia. Pierwsza część pierwszej kolumny zostanie wydrukowana.

$ AWK 'drukuj 1 $ studenci.tekst

Uruchom polecenie AWK z następującym ogranicznikiem. Pełna część pierwszej kolumny zostanie wydrukowana.

$ awk -f '\\ s \\ s' 'drukuj 1 $' studenci.tekst

Wyjście:

Przejdź do treści

AWK, aby wydrukować ostatnią kolumnę

$ (Nf) Zmienną można użyć do wydrukowania ostatniej kolumny dowolnego pliku. Następujące polecenia AWK wydrukują ostatnią część i pełną część ostatniej kolumny uczniowie.tekst plik.

$ awk 'print $ (nf)' studenci.tekst
$ awk -f '\\ s \\ s' 'print $ (nf)' studenci.tekst

Wyjście:

Przejdź do treści

Awk z Grep

GREP to kolejna przydatna polecenie Linuksa do wyszukiwania treści w pliku opartym na dowolnym wyrażeniu regularnym. To, w jaki sposób można użyć zarówno poleceń AWK, jak i GREP, jest pokazane w poniższym przykładzie. Grep Polecenie służy do wyszukiwania informacji o identyfikatorze pracownika ”1002' z Pracownik.tekst plik. Wyjście polecenia GREP zostanie wysłane do AWK jako dane wejściowe. 5% premii będzie policzona i wydrukowana na podstawie wynagrodzenia identyfikatora pracownika ”1002 ' przez polecenie AWK.

$ CAT pracownik.tekst
$ grep „1002” pracownik.txt | awk -f '\ t' 'print $ 2 "dostanie $" (3 $*5)/100 "bonus"'

Wyjście:

Przejdź do treści

AWK z plikiem Bash

Podobnie jak inne polecenie Linux, polecenie AWK można również użyć w skrypcie Bash. Utwórz plik tekstowy o nazwie klienci.tekst z następującą treścią. Każda wiersz tego pliku zawiera informacje o czterech polach. To są identyfikator, nazwa, adres i numer telefonu komórkowego Klienta. Są one oddzielone przez '/'.

klienci.tekst

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

Utwórz plik bash o nazwie item_search.grzmotnąć z następującym skryptem. Zgodnie z tym skryptem wartość stanu zostanie pobrana od użytkownika i przeszukana klienci.tekst plik przez Grep polecenie i przekazanie do polecenia AWK jako wejście. Polecenie AWK przeczyta 2Nd I 4th Pola każdej linii. Jeśli wartość wejściowa pasuje do dowolnej wartości stanu klienci.tekst plik, a następnie wydrukuje klienta nazwa I numer telefonu komórkowego, W przeciwnym razie wydrukuje wiadomość „Nie znaleziono klienta".

item_search.grzmotnąć

#!/bin/bash
echo „Wprowadź nazwę stanu:”
Przeczytaj stan
klienci = „Grep„ $ State ”klienci.txt | awk -f "/" 'drukuj „Nazwa klienta:„ 2 $ ”,
No mobilne: „4 $”
Jeśli [„$ klienci” != ""]; Następnie
echo $ klientów
w przeciwnym razie
echo „brak klienta”
fi

Uruchom następujące polecenia, aby pokazać wyjścia.

Klienci $ CAT.tekst
$ bash item_search.grzmotnąć

Wyjście:

Przejdź do treści

Awk z sed

Kolejnym przydatnym narzędziem wyszukiwania Linux jest sed. To polecenie może być używane zarówno do wyszukiwania, jak i zastępowania tekstu dowolnego pliku. Poniższy przykład pokazuje użycie polecenia AWK z sed Komenda. Tutaj polecenie SED przeszukuje wszystkie nazwy pracowników zaczyna się od 'J„i przechodzi do polecenia AWK jako dane wejściowe. AWK wydrukuje pracownika nazwa I ID Po sformatowaniu.

$ CAT pracownik.tekst
$ sed -n '/j/p pracownik.txt | awk -f '\ t' 'printf "%s (%s) \ n", 2 $, 1 $'

Wyjście:

Przejdź do treści

Wniosek:

Możesz użyć polecenia AWK, aby tworzyć różne typy raportów na podstawie dowolnych danych tabelarycznych lub ograniczonych po prawidłowym filtrowaniu danych. Mam nadzieję, że będziesz mógł dowiedzieć się, jak działa polecenie AWK po ćwiczeniu przykładów pokazanych w tym samouczku.