W systemie operacyjnym Linux istnieje wiele narzędzi służących do wyszukiwania i generowania raportów na podstawie danych tekstowych lub plików. Użytkownik może z łatwością wykonywać wiele rodzajów zadań wyszukiwania, zastępowania i generowania raportów za pomocą 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 terminala, jak i awk. Obsługuje zmienną, instrukcję warunkową, tablicę, pętle itp., podobnie jak inne języki skryptowe. Może odczytywać zawartość dowolnego pliku linia po linii i oddzielać pola lub kolumny na podstawie określonego ogranicznika. Obsługuje również wyrażenia regularne do wyszukiwania określonego ciągu w treści tekstowej lub pliku i podejmuje działania w przypadku znalezienia dowolnego dopasowania. W tym samouczku pokazano, jak używać polecenia i skryptu awk na 20 przydatnych przykładach.
Zawartość:
- awk z printf
- awk podzielić na biały znak
- awk, aby zmienić ogranicznik
- awk z danymi rozdzielanymi tabulatorami
- awk z danymi csv
- awk wyrażenie regularne
- awk wyrażenie regularne bez uwzględniania wielkości liter
- awk ze zmienną nf (liczba pól)
- funkcja awk gensub()
- awk z funkcją rand()
- funkcja zdefiniowana przez użytkownika awk
- awk jeśli
- zmienne awk
- tablice awk
- pętla awk
- awk, aby wydrukować pierwszą kolumnę
- awk, aby wydrukować ostatnią kolumnę
- awk z grep
- awk z plikiem skryptu bash
- awk z sed
Używanie awk z printf
printf() Funkcja służy do formatowania dowolnego wyjścia w większości języków programowania. Ta funkcja może być używana z awk polecenie do generowania różnych typów sformatowanych danych wyjściowych. Polecenie awk używane głównie do dowolnego pliku tekstowego. Utwórz plik tekstowy o nazwie pracownik.txt o treści podanej poniżej, gdzie pola są oddzielone tabulatorem (' ').
pracownik.txt
1001 Jan Sena 40000
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Wątroba 70000
Następujące polecenie awk odczyta dane z pracownik.txt plik wiersz po wierszu i drukuj pierwszy plik po sformatowaniu. Tutaj, %10s oznacza, że wynik będzie miał 10 znaków. Jeśli wartość wyjścia jest mniejsza niż 10 znaków, spacje zostaną dodane na początku wartości.
$awk'{ printf '% 10s ', 1 $}'pracownik.tekst
Wyjście:
awk podzielić na biały znak
Domyślnym separatorem słów lub pól do dzielenia dowolnego tekstu jest biały znak. Polecenie awk może przyjmować wartość tekstową jako dane wejściowe na różne sposoby. Tekst wejściowy jest przekazywany z wyrzucił w poniższym przykładzie. Tekst, ' lubię programować ’ zostanie podzielony domyślnie separatorem, przestrzeń , a trzecie słowo zostanie wydrukowane jako wyjście.
$wyrzucił „Lubię programować” | awk '{ wydrukuj 3 USD }'Wyjście:
awk, aby zmienić ogranicznik
Polecenie awk może być użyte do zmiany ogranicznika dla dowolnej zawartości pliku. Załóżmy, że masz plik tekstowy o nazwie telefon.txt o następującej treści, gdzie „:” jest używany jako separator pól treści pliku.
telefon.txt
+123: 334: 889: 778+880: 1855: 456: 907
+9: 7777: 38644: 808
Uruchom następujące polecenie awk, aby zmienić ogranicznik, „:” za pomocą „-” do treści pliku, telefon.txt .
$kot telefon.txt$ awk '$1=$1' FS=':' OFS='-' phone.txt
Wyjście:
awk z danymi rozdzielanymi tabulatorami
Polecenie awk ma wiele wbudowanych zmiennych, które są używane do odczytywania tekstu na różne sposoby. Dwa z nich to FS oraz OFS . FS jest separatorem pól wejściowych i OFS to zmienne separatora pól wyjściowych. W tej sekcji przedstawiono zastosowania tych zmiennych. Stwórz patka oddzielony plik o nazwie input.txt z następującą treścią w celu przetestowania zastosowań FS oraz OFS zmienne.
Input.txt
Język skryptowy po stronie klientaJęzyk skryptowy po stronie serwera
Serwer bazy danych
Serwer internetowy
Używanie zmiennej FS z tabulatorem
Następujące polecenie podzieli każdy wiersz z input.txt plik na podstawie zakładki (' ') i wydrukuj pierwsze pole każdej linii.
$awk '{ wydrukuj $1 }' FS='T'input.txtWyjście:
Używanie zmiennej OFS z zakładką
Następujące polecenie awk wypisze 9NS oraz 5NS pola „Ls-l” wyjście polecenia z separatorem tabulacji po wydrukowaniu tytułu kolumny Nazwa oraz Rozmiar . Tutaj, OFS zmienna służy do formatowania wyjścia według tabulatora.
$ls -ten$ls -ten | awk -v OFS='T' 'BEGIN { printf '%s %s ', 'Nazwa', 'Rozmiar'} {print $9, $5}'
Wyjście:
awk z danymi CSV
Zawartość 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ścią, aby zastosować polecenie awk.
klient.txt
Id, imię i nazwisko, e-mail, telefon1, Sophia, [email chroniony] , (862) 478-7263
2, Amelia, [email chroniony] , (530) 764-8000
3, Emma, [email chroniony] , (542) 986-2390
Czytanie pojedynczego pola pliku CSV
'-F' Opcja jest używana z poleceniem awk do ustawienia ogranicznika dzielenia każdego wiersza pliku. Następujące polecenie awk wypisze Nazwa pole klient.csv plik.
$Kotklient.csv$awk -F ',' „{drukuj $2}”klient.csv
Wyjście:
Czytanie wielu pól poprzez łączenie z innym tekstem
Następujące polecenie wydrukuje trzy pola klient.csv łącząc tekst tytułu, Imię i nazwisko, e-mail i telefon . Pierwsza linia klient.csv plik zawiera tytuł każdego pola. NR zmienna zawiera numer wiersza pliku, gdy polecenie awk analizuje plik. W tym przykładzie NR zmienna służy do pominięcia pierwszego wiersza pliku. Dane wyjściowe pokażą 2NS, 3r & Di 4NSpola wszystkich wierszy z wyjątkiem pierwszego wiersza.
$awk -F ',' 'NR>1 {print 'Imię:' $2', Email:' $3', Telefon:' $4}'klient.csvWyjście:
Czytanie pliku CSV za pomocą skryptu awk
Skrypt awk można wykonać, uruchamiając plik awk. W tym przykładzie pokazano, jak utworzyć plik awk i uruchomić go. Utwórz plik o nazwie awkcsv.awk z następującym kodem. ROZPOCZĄĆ słowo kluczowe jest używane w skrypcie do informowania polecenia awk o wykonaniu skryptu ROZPOCZĄĆ część najpierw przed wykonaniem innych zadań. Tutaj separator pól ( FS ) służy do zdefiniowania ogranicznika podziału, a 2NSi 1NSpola będą drukowane zgodnie z formatem używanym w funkcji printf().
awkcsv.awkROZPOCZĄĆ{FS= ','} { printf '% 5s (% s) ',$2,$1}
Biegać awkcsv.awk plik o treści klient.csv plik za pomocą następującego polecenia.
$awk -Fawkcsv.awk klient.csvWyjście:
awk wyrażenie regularne
Wyrażenie regularne to wzorzec używany do wyszukiwania dowolnego ciągu w tekście. Różne typy skomplikowanych zadań wyszukiwania i zamiany można bardzo łatwo wykonać za pomocą wyrażenia regularnego. W tej sekcji pokazano kilka prostych zastosowań wyrażenia regularnego z poleceniem awk.
Pasujący charakterustawićNastępujące polecenie będzie pasować do słowa Głupiec lub głupek lub Fajny z ciągiem wejściowym i wypisz, jeśli słowo zostanie znalezione. Tutaj, Lalka nie dopasuje się i nie wydrukuje.
$printf 'Głupiec Fajny Lalka bujać | awk '/[FbC]ool/'Wyjście:
Wyszukiwanie ciągu na początku wiersza
„^” symbol jest używany w wyrażeniu regularnym do wyszukiwania dowolnego wzorca na początku wiersza. ‘ Linuksa” słowo zostanie przeszukane na początku każdego wiersza tekstu w poniższym przykładzie. Tutaj dwie linijki zaczynają się od tekstu, „Linuksa” ’, a te dwie linie zostaną pokazane na wyjściu.
$wyrzucił -I „Linux jest darmowy” Jest to oprogramowanie typu open source LinuxWskazówka topopularny blog” | awk '/^Linux/'
Wyjście:
Wyszukiwanie ciągu na końcu wiersza
„$” symbol jest używany w wyrażeniu regularnym do wyszukiwania dowolnego wzorca na końcu każdego wiersza tekstu. ‘ Scenariusz ’ słowo jest wyszukiwane w poniższym przykładzie. Tutaj dwie linijki zawierają słowo, Scenariusz na końcu linii.
$wyrzucił -I „Skrypt PHP” JavaScript Programowanie wizualne” | awk '/Skrypt$/'Wyjście:
Wyszukiwanie z pominięciem określonego zestawu znaków
„^” symbol wskazuje początek tekstu, gdy jest używany przed dowolnym wzorcem ciągu („/ ^… /”) lub przed dowolnym zestawem znaków zadeklarowanym przez ^ […] . Jeśli „^” symbol jest używany w trzecim nawiasie, [^…] wtedy zdefiniowany zestaw znaków w nawiasie zostanie pominięty podczas wyszukiwania. Następujące polecenie przeszuka każde słowo, które nie zaczyna się od 'F' ale kończąc na ‘ ooo „. Fajny oraz głupota zostanie wydrukowany zgodnie ze wzorem i danymi tekstowymi.
$ printf 'Głupiec Fajny Lalka bujać |awk'/ [^ F] ol /'Wyjście:
awk wyrażenie regularne bez uwzględniania wielkości liter
Domyślnie wyrażenie regularne wykonuje wyszukiwanie z uwzględnieniem wielkości liter podczas wyszukiwania dowolnego wzorca w ciągu. Wyszukiwanie bez rozróżniania wielkości liter można wykonać za pomocą polecenia awk z wyrażeniem regularnym. W poniższym przykładzie obniżyć() Funkcja służy do wyszukiwania bez uwzględniania wielkości liter. Tutaj pierwsze słowo każdego wiersza tekstu wejściowego zostanie przekonwertowane na małe litery za pomocą obniżyć() funkcji i dopasuj do wzorca wyrażenia regularnego. nakładka() funkcja może być również użyta do tego celu, w tym przypadku wzorzec musi być zdefiniowany całą wielką literą. Tekst zdefiniowany w poniższym przykładzie zawiera wyszukiwane słowo, 'Sieć ' w dwóch wierszach, które zostaną wydrukowane jako wyjście.
$wyrzucił -I 'Projektowanie stron tworzenie stron internetowych Struktura' | awk 'tolower($0) ~ /^web/;'Wyjście:
awk ze zmienną NF (liczba pól)
NF jest zmienną wbudowaną 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. input.txt używany jest tutaj plik, który został utworzony w poprzednim przykładzie.
Używanie NF z wiersza poleceń
Tutaj pierwsze polecenie służy do wyświetlenia zawartości input.txt file i drugie polecenie służy do pokazania całkowitej liczby pól w każdym wierszu pliku za pomocą NF zmienny.
$ cat input.txt$ awk '{print NF}' input.txt
Wyjście:
Używanie NF w pliku awk
Utwórz plik awk o nazwie count.awk ze skryptem podanym poniżej. Gdy ten skrypt zostanie wykonany z dowolnymi danymi tekstowymi, każda zawartość wiersza z polami sumarycznymi zostanie wydrukowana jako wynik.
count.awk
{drukuj $0}{wydrukować'[Suma pól:'NF']'}
Uruchom skrypt za pomocą następującego polecenia.
$awk -Fcount.awk input.txtWyjście:
funkcja awk gensub()
getsub() to funkcja podstawienia, która służy do wyszukiwania ciągu na podstawie określonego ogranicznika lub wzorca wyrażenia regularnego. Ta funkcja jest zdefiniowana w 'gapić się' pakiet, który nie jest domyślnie instalowany. Składnia tej funkcji jest podana poniżej. Pierwszy parametr zawiera wzorzec wyrażenia regularnego lub ogranicznik wyszukiwania, drugi parametr zawiera tekst zastępczy, trzeci parametr wskazuje sposób wyszukiwania, a ostatni parametr zawiera tekst, w którym ta funkcja zostanie zastosowana.
Składnia:
gensub(wyrażenie regularne, zamiana, jak[, cel])Uruchom następujące polecenie, aby zainstalować gapić się pakiet do użycia getsub() funkcja z poleceniem awk.
$ sudo apt-get zainstaluj gawkUtwórz plik tekstowy o nazwie „ informacja o sprzedaży.txt ” z następującą treścią, aby przećwiczyć ten przykład. Tutaj pola są oddzielone tabulatorem.
informacja o sprzedaży.txt
Moje 700000Twój 800000
Śr 750000
Zbierz 200000
pt 430000
Sob 820000
Uruchom następujące polecenie, aby odczytać pola numeryczne informacja o sprzedaży.txt plik i wydrukuj sumę wszystkich kwot sprzedaży. Tutaj trzeci parametr „G” wskazuje na globalne wyszukiwanie. Oznacza to, że wzorzec zostanie przeszukany w pełnej zawartości pliku.
$awk '{ x=gensub(' ','','G',$2); printf x '+' } END{ print 0 }'informacja o sprzedaży.txt| pne -tenWyjście:
awk z funkcją rand()
wiersz() Funkcja służy do generowania dowolnej liczby losowej większej niż 0 i mniejszej niż 1. Więc zawsze wygeneruje liczbę ułamkową mniejszą niż 1. Poniższe polecenie wygeneruje ułamkową liczbę losową i pomnoży wartość przez 10, aby uzyskać liczbę większą niż 1. W celu zastosowania funkcji printf() zostanie wydrukowana liczba ułamkowa z dwiema cyframi po przecinku. Jeśli wielokrotnie uruchomisz następujące polecenie, za każdym razem otrzymasz inne dane wyjściowe.
$awk 'BEGIN {printf 'Liczba =%.2f ' , rand()*10}'Wyjście:
funkcja zdefiniowana przez użytkownika awk
Wszystkie funkcje użyte w poprzednich przykładach są funkcjami wbudowanymi. Ale możesz zadeklarować funkcję zdefiniowaną przez użytkownika w swoim skrypcie awk, aby wykonać określone zadanie. Załóżmy, że chcesz utworzyć niestandardową funkcję do obliczania pola prostokąta. Aby wykonać to zadanie, utwórz plik o nazwie „ obszar.awk ’ z następującym skryptem. W tym przykładzie zdefiniowana przez użytkownika funkcja o nazwie powierzchnia() jest zadeklarowana w skrypcie, który oblicza powierzchnię na podstawie parametrów wejściowych i zwraca wartość powierzchni. getline Polecenie jest tutaj używane do pobierania danych wejściowych od użytkownika.
obszar.awk
# Oblicz obszarfunkcjonowaćpowierzchnia(wzrost,szerokość){
powrótwzrost*szerokość
}
# Rozpoczyna wykonanie
ROZPOCZĄĆ{
wydrukować'Wprowadź wartość wysokości:'
getline< „-”
wydrukować'Wprowadź wartość szerokości:'
getline w< „-”
wydrukować'Obszar = 'powierzchnia(h,w)
}
Uruchom skrypt.
$awk -Fobszar.awkWyjście:
awk jeśli przykład
awk obsługuje instrukcje warunkowe, podobnie jak inne standardowe języki programowania. W tej sekcji przedstawiono trzy typy instrukcji if, używając trzech przykładów. Utwórz plik tekstowy o nazwie items.txt o następującej treści.
items.txt
Dysk twardy Samsung $100Mysz A4Tech
Drukarka HP 200 zł
Prosty, jeśli przykład :
następujące polecenie odczyta zawartość items.txt plik i sprawdź 3r & D wartość pola w każdym wierszu. Jeśli wartość jest pusta, wyświetli komunikat o błędzie z numerem wiersza.
$awk '{ if ($3 == '') print 'Brak pola ceny w linii ' NR }'items.txtWyjście:
przykład jeśli-inny:
Następujące polecenie wydrukuje cenę przedmiotu, jeśli 3r & Dpole istnieje w linii, w przeciwnym razie wyświetli komunikat o błędzie.
$awk'{ if ($3 == '') print 'Brak pola ceny'else print 'cena produktu to ' 3 USD }'rzeczy.tekst
Wyjście:
przykład jeśli-jeżeli-jeśli:
Gdy następujące polecenie zostanie wykonane z terminala, pobierze dane wejściowe od użytkownika. Wartość wejściowa będzie porównywana z każdym warunkiem if, dopóki warunek nie zostanie spełniony. Jeśli którykolwiek warunek stanie się spełniony, wydrukuje odpowiednią ocenę. Jeśli wartość wejściowa nie pasuje do żadnego warunku, wydruk nie powiedzie się.
$awk 'BEGIN { print 'Wprowadź znak:'znak getline<'-'
jeśli (oznaczenie >= 90) wypisz 'A+'
w przeciwnym razie (znak >= 80) wypisz 'A'
w przeciwnym razie if( znak >= 70) wypisz 'B+'
else print 'Niepowodzenie' }'
Wyjście:
zmienne awk
Deklaracja zmiennej awk jest podobna do deklaracji zmiennej powłoki. Istnieje różnica w odczytywaniu wartości zmiennej. Symbol „$” jest używany z nazwą zmiennej dla zmiennej powłoki do odczytania wartości. Ale nie ma potrzeby używania „$” ze zmienną awk do odczytania wartości.
Używając prostej zmiennej:
Następujące polecenie zadeklaruje zmienną o nazwie 'Strona' a wartość ciągu jest przypisana do tej zmiennej. Wartość zmiennej jest wypisywana w następnej instrukcji.
$awk 'BEGIN{ site='LinuxHint.com'; drukuj stronę}'Wyjście:
Używanie zmiennej do pobierania danych z pliku
Następujące polecenie wyszuka słowo 'Drukarka' w pliku items.txt . Jeśli dowolna linia pliku zaczyna się od 'Drukarka ’ wtedy będzie przechowywać wartość 1NS , 2NS oraz 3r & D pola na trzy zmienne. Nazwa oraz Cena £ zmienne zostaną wydrukowane.
$awk'/Drukarka/ { nazwa=$1;marka=2$;cena=3$;print 'nazwa pozycji=' nazwa;print 'cena pozycji=' cena }'rzeczy.tekst
Wyjście:
tablice awk
W awk można używać zarówno tablic numerycznych, jak i powiązanych. Deklaracja zmiennej tablicowej w awk jest taka sama jak w innych językach programowania. W tej sekcji pokazano niektóre zastosowania tablic.
Tablica asocjacyjna:
Indeks tablicy będzie dowolnym łańcuchem dla tablicy asocjacyjnej. W tym przykładzie zadeklarowana i wydrukowana jest tablica asocjacyjna składająca się z trzech elementów.
$awk 'ROZPOCZĄĆ {books['Web Design'] = 'Nauka HTML 5';
books['Programowanie WWW'] = 'PHP i MySQL'
books['PHP Framework']='Nauka Laravela 5'
printf '%s %s %s ', books['Projektowanie WWW'],books['Programowanie WWW'],
książki['Szkielet PHP'] }'
Wyjście:
Tablica liczbowa:
Tablica numeryczna składająca się z trzech elementów jest deklarowana i drukowana przez oddzielanie tabulatora.
$awk'ROZPOCZĄĆ {liczba[0] = 80;
liczba[1] = 55;
liczba[2] = 76;
# drukuj elementy tablicy
printf 'Wartości tablicy: %dT%DT%D ', numer[0],numer[1],numer[2]; }'
Wyjście:
pętla awk
W awk obsługiwane są trzy typy pętli. Zastosowania tych pętli pokazano tutaj na trzech przykładach.
Podczas pętli:
Pętla while użyta w poniższym poleceniu wykona 5 iteracji i wyjdzie z instrukcji loop for break.
$ awk 'POCZĄTEK { n = 1; natomiast (n 5) przerwa; drukuj n; n++ } }'Wyjście:
Dla pętli:
Pętla For użyta w poniższym poleceniu awk obliczy sumę od 1 do 10 i wypisze wartość.
$awk 'POCZĄTEK { suma=0; dla (n = 1; n<= 10; n++) sum=sum+n; print sum }'Wyjście:
Pętla Do-while:
pętla do while następującego polecenia wypisze wszystkie liczby parzyste od 10 do 5.
$awk 'POCZĄTEK {licznik = 10; do { if (counter%2 ==0) drukuj licznik; licznik-- }while (licznik > 5) }'
Wyjście:
awk, aby wydrukować pierwszą kolumnę
Pierwsza kolumna dowolnego pliku może zostać wydrukowana za pomocą zmiennej $1 w awk. Ale jeśli wartość pierwszej kolumny zawiera wiele słów, zostanie wydrukowane tylko pierwsze słowo z pierwszej kolumny. Używając określonego ogranicznika, pierwsza kolumna może zostać poprawnie wydrukowana. Utwórz plik tekstowy o nazwie studenci.txt o następującej treści. Tutaj pierwsza kolumna zawiera tekst dwóch słów.
Studenci.txt
Kaniz Fatema 30NSseriaAbir Hossain 35NSseria
Jan Abraham 40NSseria
Uruchom polecenie awk bez żadnych ograniczników. Wydrukowana zostanie pierwsza część pierwszej kolumny.
$awk „{drukuj 1 USD}”studenci.txtUruchom polecenie awk z następującym ogranicznikiem. Wydrukowana zostanie cała część pierwszej kolumny.
$awk -F '\ SS' „{drukuj 1 USD}”studenci.txtWyjście:
awk, aby wydrukować ostatnią kolumnę
$(NF) zmienna może być użyta do wydrukowania ostatniej kolumny dowolnego pliku. Następujące polecenia awk wypiszą ostatnią część i całą część ostatniej kolumny studenci.txt plik.
$awk '{drukuj $(NF)}'studenci.txt$awk -F '\ SS' '{drukuj $(NF)}'studenci.txt
Wyjście:
awk z grep
grep to kolejne przydatne polecenie Linuksa do wyszukiwania treści w pliku na podstawie dowolnego wyrażenia regularnego. W poniższym przykładzie pokazano, w jaki sposób oba polecenia awk i grep mogą być używane razem. chwyt Polecenie służy do wyszukiwania informacji o identyfikatorze pracownika, ‘ 1002 ' z pracownik.txt plik. Wynik polecenia grep zostanie wysłany do awk jako dane wejściowe. 5% premia zostanie naliczona i wydrukowana na podstawie wynagrodzenia identyfikatora pracownika, ‘ 1002 ' poleceniem awk.
$Kotpracownik.txt$chwyt '1002'pracownik.txt| awk -F 'T' '{ print $2 ' dostanie $' (3*5)/100 ' bonus'}'
Wyjście:
awk z plikiem BASH
Podobnie jak inne polecenia Linuksa, polecenie awk może być również używane w skrypcie BASH. Utwórz plik tekstowy o nazwie klienci.txt o następującej treści. Każdy wiersz tego pliku zawiera informacje w czterech polach. Są to identyfikator klienta, imię i nazwisko, adres i numer telefonu komórkowego, które są oddzielone „/ „.
klienci.txt
AL4934 / Charles M Brunner / 4838 Beeghley Street, Huntsville, Alabama / 256-671-7942CA5455/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.bash z następującym skryptem. Zgodnie z tym skryptem wartość stanu zostanie pobrana od użytkownika i wyszukana w klienci.txt plik przez chwyt i przekazywane do polecenia awk jako dane wejściowe. Polecenie awk odczyta 2NS oraz 4NS pola każdej linii. Jeśli wartość wejściowa pasuje do dowolnej wartości stanu klienci.txt plik, a następnie wydrukuje plik klienta Nazwa oraz numer telefonu komórkowego , w przeciwnym razie wypisze wiadomość Nie znaleziono klienta .
item_search.bash
#!/kosz/bashwyrzucił „Wprowadź nazwę stanu:”
czytaćstan
klienci=``chwyt '$stan'klienci.txt| awk -F '/' '{print 'Nazwa klienta:' $2, ',
Numer telefonu komórkowego:' $4}'``
Jeśli [ '$klienci' !='' ];następnie
wyrzucił $klienci
w przeciwnym razie
wyrzucił „Nie znaleziono klienta”
być
Uruchom następujące polecenia, aby wyświetlić dane wyjściowe.
$Kotklienci.txt$grzmotnąćitem_search.bash
Wyjście:
awk z sed
Innym przydatnym narzędziem do wyszukiwania w Linuksie 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 przeszuka wszystkie nazwiska pracowników zaczynające się od ‘ J ’ i przekazuje do polecenia awk jako dane wejściowe. awk wydrukuje pracownika Nazwa oraz NS po sformatowaniu.
$Kotpracownik.txt$sed -n '/J/p'pracownik.txt| awk -F 'T' '{ printf '%s(%s) ', $2, $1 }'
Wyjście:
Wniosek:
Polecenia awk można używać do tworzenia różnych typów raportów na podstawie dowolnych danych tabelarycznych lub rozdzielanych po odpowiednim przefiltrowaniu danych. Mam nadzieję, że po przećwiczeniu przykładów pokazanych w tym samouczku będziesz mógł nauczyć się, jak działa polecenie awk.