Jak używać AWK i wyrażeń regularnych do filtrowania tekstu lub ciągów w plikach

Jak używać AWK i wyrażeń regularnych do filtrowania tekstu lub ciągów w plikach

Kiedy uruchamiamy określone polecenia w UNIX/Linux, aby odczytać lub edytować tekst z ciągu lub pliku, większość czasu próbujemy filtrować wyjście do danej sekcji zainteresowania. Tutaj przydaje się użycie wyrażeń regularnych.

Przeczytaj także: 10 Przydatnych operatorów łączenia Linuksa z praktycznymi przykładami

Jakie są wyrażenia regularne?

Wyrażenie regularne można zdefiniować jako ciągi reprezentujące kilka sekwencji znaków. Jedną z najważniejszych rzeczy w wyrażeniach regularnych jest to, że pozwalają one filtrować wyjście polecenia lub pliku, edytować sekcję tekstu lub pliku konfiguracyjnego i tak dalej.

Cechy wyrażenia regularnego

Wyrażenia regularne są wykonane z:

  1. Zwykłe postacie takie jak przestrzeń, podkreślenie (_), A-Z, A-Z, 0-9.
  2. Meta postaci które są rozszerzone na zwykłe znaki, obejmują one:
    1. (.) Pasuje do dowolnej pojedynczej postaci oprócz nowej linii.
    2. (*) Dopasowuje zero lub więcej egzystencji bezpośredniego postaci poprzedzającego go.
    3. [ postacie) ] Pasuje do dowolnego z znaków określonych w postaciach, można również użyć łącznika (-) znaczyć szereg znaków, takich jak [A-F], [1-5], i tak dalej.
    4. ^ Pasuje do początku linii w pliku.
    5. $ pasuje do końca linii w pliku.
    6. \ To postać ucieczki.

Aby filtrować tekst, trzeba użyć narzędzia do filtrowania tekstu, takiego jak Awk. Możesz myśleć o Awk jako własny język programowania. Ale dla zakresu tego przewodnika do używania Awk, Przyjrzymy to jako proste narzędzie do filtrowania wiersza poleceń.

Ogólna składnia AWK to:

# Awk „Script” nazwa pliku 

Gdzie 'scenariusz' jest zestawem poleceń, które są rozumiane przez Awk i są wykonane w pliku, nazwa pliku.

Działa, czytając dany wiersz w pliku, wykonuje kopię wiersza, a następnie wykonuje skrypt na wierszu. Jest to powtarzane na wszystkich wierszach w pliku.

'scenariusz' jest w formie „/ wzór/ akcja” Gdzie wzór jest wyrażeniem regularnym i działanie jest to, co zrobi AWK, gdy znajdzie dany wzór w linii.

Jak używać narzędzia filtrowania AWK w Linux

W poniższych przykładach skupimy się na metalach, które omówiliśmy powyżej w cechach AWK.

Prosty przykład używania AWK:

Poniższy przykład drukuje wszystkie wiersze w pliku /etc/hosts Ponieważ nie podano żadnego wzorca.

# awk '//print '/etc/hosts 
AWK drukuje wszystkie linie w pliku

Użyj AWK z wzorem:

I przykład poniżej, wzór Lokalny Gospodarz został podany, więc Awk będzie pasował do linii Lokalny Gospodarz w /etc/hosts plik.

# awk '/Lokalny Gospodarz/print ' /etc /hosts 
Drukuj AWK podany pasującą linię w pliku

Używając AWK z (.) Dzika karta w wzorze

(.) będzie pasować do ciągów zawierających loc, Lokalny Gospodarz, Localnet W poniższym przykładzie.

To jest do powiedzenia * l Some_Single_Character C *.

# awk '/l.C/print ' /etc /hosts 
Użyj AWK do drukowania pasujących ciągów w pliku

Używanie AWK z postacią (*) w wzorze

Będzie pasował do ciągów zawierających Lokalny Gospodarz, Localnet, linie, zdolny, Jak w poniższym przykładzie:

# awk '/l*c/print ' /etc /localhost 
Użyj AWK, aby dopasować ciągi w pliku

Uświadomicie się też (*) próbuje uzyskać najdłuższy możliwy mecz, jaki może wykryć.

Spójrz na sprawę, która to pokazuje, weź wyrażenie regularne t*t co oznacza, że ​​meczowe sznurki zaczynają się od litera T i kończą się T w linii poniżej:

To jest Tecmint, w którym otrzymujesz najlepsze dobre samouczki, jak to zrobić, przewodniki, tecmint. 

Użyj następujących możliwości, gdy użyjesz wzoru /t*t/:

to jest tecmint, to jest tecmint, gdzie dostajesz t, że jest to tecmint, gdzie otrzymujesz najlepsze dobre, to jest tecmint, gdzie dostajesz najlepsze dobre samouczki, jak to jest tecmint, gdzie masz najlepsze dobre samouczki , jak TO, przewodniki, to jest tecmint, gdzie otrzymujesz najlepsze dobre samouczki, jak TO, przewodniki, tecmint 

I (*) W /t*t/ Postać Wild Card pozwala AWK wybrać ostatnią opcję:

To jest Tecmint, w którym otrzymujesz najlepsze dobre samouczki, jak to zrobić, przewodniki, tecmint 

Używanie AWK z zestawem [znaków (S)]

Weźmy na przykład zestaw [al1], Tutaj AWK będzie pasował do wszystkich strun zawierających charakter A Lub L Lub 1 w wierszu w pliku /etc/hosts.

# awk '/[al1]/print ' /etc /hosts 
Użyj-AWK do drukowania pasującego znaku w pliku

Następny przykład pasuje do sznurków, zaczynając od jednego z nich K Lub k śledzony przez T:

# awk '/[Kk] t/print ' /etc /hosts 
Użyj AWK, aby wydrukować dopasowany ciąg w pliku

Określanie znaków w zakresie

Zrozum postacie z AWK:

  1. [0-9] oznacza pojedynczą liczbę
  2. [A-Z] oznacza, że ​​dopasuj pojedynczą literę o niższej liście
  3. [A-Z] oznacza dopasowanie pojedynczej litery górnej
  4. [a-za-z] oznacza, że ​​dopasuj jedną literę
  5. [A-ZA-Z 0-9] oznacza, że ​​dopasuj pojedynczą literę lub numer

Spójrzmy na przykład poniżej:

# awk '/[0-9]/print ' /etc /hosts 
Użyj AWK, aby wydrukować pasujące numery w pliku

Cała linia z pliku /etc/hosts zawierać co najmniej jedną liczbę [0-9] W powyższym przykładzie.

Użyj AWK z (^) meta

Dopasowuje wszystkie linie, które zaczynają się od wzoru podanego jak w poniższym przykładzie:

# awk '/^fe/print ' /etc /hosts # awk'/^ff/print ' /etc /hosts 
Użyj AWK, aby wydrukować wszystkie pasujące linie z wzorem

Użyj AWK z ($) meta

Dopasowuje wszystkie linie kończące się z dostarczonym wzorem:

# awk '/AB $/print ' /etc /hosts # awk'/OST $/print ' /etc /hosts # awk'/rs $/print ' /etc /hosts 
Użyj AWK, aby wydrukować podany ciąg

Użyj AWK z postacią ucieczki (\)

Pozwala ci wziąć postać za nią jako dosłownie, czyli to, rozważ to tak, jak jest.

W poniższym przykładzie pierwsze polecenie wydrukuje całą linię w pliku, drugie polecenie nic nie drukuje, ponieważ chcę dopasować linię, która ma 25 USD.00, Ale nie jest używana postać ucieczki.

Trzecie polecenie jest prawidłowe, ponieważ do odczytania zostanie użyta znak ucieczki $ jak to jest.

# awk '//Print oferty.txt # awk '/25 USD.00/Print oferty.txt # awk '/\ 25 $.00/Print oferty.tekst 
Użyj AWK z znakiem ucieczki

Streszczenie

To nie wszystko z Awk Narzędzie filtrowania wiersza poleceń, przykłady powyżej podstawowych operacji AWK. W następnych częściach będziemy postępować w zakresie używania złożonych funkcji AWK. Dziękujemy za przeczytanie i wszelkie dodatki lub wyjaśnienia, opublikuj komentarz w sekcji komentarzy.