Wyszukiwanie w witrynie

Jak pisać skrypty przy użyciu języka programowania Awk — część 13


Przez cały czas, od początku serii Awk aż do części 12, pisaliśmy małe polecenia i programy Awk, odpowiednio w wierszu poleceń i w skryptach powłoki.

Jednak Awk, podobnie jak Shell, jest również językiem interpretowanym, dlatego też, biorąc pod uwagę wszystko, przez co przeszliśmy od początku tej serii, możesz teraz pisać skrypty wykonywalne Awk.

Podobnie jak piszemy skrypt powłoki, skrypty Awk zaczynają się od linii:

#! /path/to/awk/utility -f 

Na przykład w moim systemie narzędzie Awk znajduje się w /usr/bin/awk, dlatego uruchomiłbym skrypt Awk w następujący sposób:

#! /usr/bin/awk -f 

Wyjaśnienie powyższej linii:

  1. #! – określany jako Shebang, który określa interpreter instrukcji zawartych w skrypcie
  2. /usr/bin/awk – jest interpreterem
  3. -f – opcja interpretera, służąca do odczytu pliku programu

To powiedziawszy, przyjrzyjmy się teraz kilku przykładom skryptów wykonywalnych Awk. Możemy zacząć od prostego skryptu poniżej. Użyj swojego ulubionego edytora, aby otworzyć nowy plik w następujący sposób:

vi script.awk

I wklej poniższy kod do pliku:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Zapisz plik i wyjdź, a następnie spraw, aby skrypt był wykonywalny, wydając poniższe polecenie:

chmod +x script.awk

Następnie uruchom go:

./script.awk
Przykładowe wyjście
Writing my first Awk executable script!

Krytyczny programista z pewnością zadaje sobie pytanie: „Gdzie są komentarze?”. Tak, możesz także umieszczać komentarze w swoim skrypcie Awk. Pisanie komentarzy w kodzie jest zawsze dobrą praktyką programistyczną.

Pomaga innym programistom przeglądającym Twój kod zrozumieć, co próbujesz osiągnąć w każdej sekcji skryptu lub pliku programu.

Dlatego możesz dołączyć komentarze do powyższego skryptu w następujący sposób.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Następnie przyjrzymy się przykładowi, w którym czytamy dane wejściowe z pliku. Chcemy wyszukać użytkownika systemu o nazwie aaronkilik w pliku konta /etc/passwd, a następnie wydrukować nazwę użytkownika, użytkownika ID i użytkownika GID w następujący sposób:

Poniżej znajduje się treść naszego skryptu o nazwie drugi.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Zapisz plik i wyjdź, spraw, aby skrypt był wykonywalny i wykonaj go jak poniżej:

chmod +x second.awk
./second.awk /etc/passwd
Przykładowe wyjście
Username : aaronkilik User ID : 1000 User GID : 1000

W ostatnim przykładzie poniżej użyjemy instrukcji do while, aby wydrukować liczby od 0-10:

Poniżej znajduje się zawartość naszego skryptu o nazwie do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Po zapisaniu pliku uczyń skrypt wykonywalnym, tak jak to zrobiliśmy wcześniej. Następnie uruchom go:

chmod +x do.awk
./do.awk
Przykładowe wyjście
0
1
2
3
4
5
6
7
8
9
10

Streszczenie

Dotarliśmy do końca tej interesującej serii Awk. Mam nadzieję, że wiele się nauczyłeś ze wszystkich 13 części, jako wprowadzenie do języka programowania Awk.

Jak wspomniałem na początku, Awk jest kompletnym językiem przetwarzania tekstu, z tego powodu możesz poznać więcej innych aspektów języka programowania Awk, takich jak zmienne środowiskowe, tablice, funkcje (wbudowane i definiowane przez użytkownika) i nie tylko.

Istnieją jeszcze dodatkowe części programowania w Awk do nauczenia się i opanowania, więc poniżej umieściłem kilka linków do ważnych zasobów online, których możesz użyć do poszerzenia swoich umiejętności programowania w Awk. To niekoniecznie wszystko, czego potrzebujesz, możesz także zajrzeć sięgnij po przydatne książki o programowaniu Awk.

Linki referencyjne: Podręcznik użytkownika GNU Awk i programowanie w języku AWK

Jeśli chcesz podzielić się przemyśleniami lub zadać pytania, skorzystaj z poniższego formularza komentarza. Pamiętaj, aby zawsze pozostawać w kontakcie z Tecmint, aby uzyskać więcej ekscytujących seriali.