Funkcje ciągów AWK

Funkcje ciągów AWK

AWK to potężne narzędzie do przetwarzania tekstu, które jest powszechnie używane do manipulowania i analizy danych w środowiskach Unix i Linux. Jedną z kluczowych cech AWK jest jego zdolność do manipulowania strunami za pomocą szerokiej gamy wbudowanych funkcji.

W tym artykule zbadamy niektóre z najczęściej używanych funkcji manipulacji strunami w AWK.

  • długość (ciąg): Zwraca długość określonego ciągu.
  • substr (ciąg, start, długość): Zwraca podłoże określonego ciągu, zaczynając od określonej pozycji i z określoną długością.
  • indeks (ciąg, podaj): Zwraca położenie pierwszego występowania określonego podłoża w określonym ciągu.
  • split (ciąg, tablica, separator): Dzieli określony ciąg na tablicę podłoża, używając określonego separatora, aby określić, gdzie podzielić ciąg.
  • sub (RegexP, zamiennik, ciąg): To zastępuje pierwszy występujący wyrażenie regularne z łańcucha „zamiennikiem”.
  • GSUB (Regexp, zamiennik, ciąg): Zastępuje wszystkie wystąpienia określonego wyrażenia regularnego w określonym ciągu określonym ciągiem zastępczym.
  • dopasowanie (ciąg, RegexP): Wyszukuje określony ciąg pierwszego występowania określonego wyrażenia regularnego i zwraca położenie dopasowania i długość dopasowanego podłoża w tablicy.
  • Tolower (string) i toupper (ciąg): Konwertuje wszystkie wielkie lub małe znaki w określonym ciągu odpowiednio w znaki małymi lub wielkimi.

Zrozummy wszystkie funkcje ciągów jeden po drugim, w tym przykład:

1. długość (ciąg)

długość (ciąg) Funkcja zwraca długość określonego ciągu. Na przykład, jeśli chcemy znaleźć długość łańcucha "Witaj świecie!", Możemy użyć następującego kodu:

awk 'start druk długość („Cześć, świat!") '
1awk 'start druk długość („Cześć, świat!") '

To będzie wyprowadzone „13”, Od sznurka „Witaj, świat!”Ma 13 znaków.

2. substr (ciąg, start, długość)

substr (ciąg, start, długość) Funkcja zwraca podłoże określonego ciągu, zaczynając od określonej pozycji i z określoną długością. Na przykład, jeśli chcemy wyodrębnić pierwsze 5 znaków ciągu "Witaj świecie!", Możemy użyć następującego kodu:

awk 'start print substr ("hello, świat!", 1, 5) '
1awk 'start print substr ("hello, świat!", 1, 5) '

To będzie wyprowadzone "Cześć", Ponieważ pierwsze 5 znaków sznurka to „Hello”.

3. indeks (ciąg, podaj)

indeks (ciąg, podaj) Funkcja zwraca położenie pierwszego występowania określonego podłoża w określonym ciągu. Na przykład, jeśli chcemy znaleźć pozycję „Świata” podjazdu w ciągu „Witaj, świat!”, Możemy użyć następującego kodu:

awk 'start indeks print („Cześć, świat!", "Świat")'
1awk 'start indeks print („Cześć, świat!", "Świat")'

To będzie wyprowadzone „8”, Ponieważ „świat” podłoża zaczyna się na 8. pozycji w ciągu.

4. split (ciąg, tablica, separator)

split (ciąg, tablica, separator) Funkcja dzieli określony ciąg na tablicę podłoża, za pomocą określonego separatora w celu ustalenia, gdzie podzielić ciąg. Na przykład, jeśli chcemy podzielić ciąg „Apple, banan, pomarańczowy” na tablicę podłoża za pomocą przecinka jako separatora, możemy użyć następującego kodu:

awk 'start split („jabłko, banan, pomarańcza”, a, „,”); Dla (i in a) wydrukuj [i] '
1awk 'start split („jabłko, banan, pomarańcza”, a, „,”); Dla (i in a) wydrukuj [i] '

To wyjdzie:

Wyjście Apple Banana Orange 

5. sub (RegexP, zamiennik, ciąg)

sub (RegexP, zamiennik, ciąg) Funkcja zastępuje pierwsze występowanie określonego wyrażenia regularnego w określonym ciągu określonym ciągiem zastępczym. Na przykład, jeśli chcemy zastąpić tylko pierwsze wystąpienie litery „O” w ciągu „Witaj, świat!”Z literą„ A ”możemy użyć następującego kodu:

awk 'start sub („o”, „a”, „hello, świat!"); print '
1awk 'start sub („o”, „a”, „hello, świat!"); print '

To będzie wyprowadzone „Holla, świat!", Od czasu pierwszego wystąpienia litery „O” zostało zastąpione literem „A”.

6. GSUB (Regexp, zamiennik, ciąg)

Funkcja GSUB (Regexp, Repepation, String) zastępuje wszystkie wystąpienia określonego wyrażenia regularnego w określonym ciągu z określonym ciągiem zastępczym. Na przykład, jeśli chcemy zastąpić wszystkie wystąpienia litery „O” w ciągu „Witaj, świat!”Z literą„ A ”możemy użyć następującego kodu:

Awk 'start gsub („o”, „a”, „hello, świat!"); print '
1Awk 'start gsub („o”, „a”, „hello, świat!"); print '

Będzie to wyprowadzić „Hella, Warld!”, Ponieważ wszystkie wystąpienia litery„ O ”zostały zastąpione literem„ A ”.

7. dopasowanie (ciąg, RegexP)

dopasowanie (ciąg, RegexP) Funkcja przeszukuje określony ciąg pierwszego występowania określonego wyrażenia regularnego i zwraca położenie dopasowania i długość dopasowanej podłoży w tablicy. Na przykład, jeśli chcemy znaleźć pozycję i długość pierwszego wystąpienia słowa „świat” w ciągu „Witaj, świat!”, Możemy użyć następującego kodu:

awk 'start mecz („Witam, świat!", /Świat /); drukuj rstart, rlength ''
1awk 'start mecz („Witam, świat!", /Świat /); drukuj rstart, rlength ''

To będzie wyprowadzone „8 5”, Ponieważ słowo „świat” zaczyna się na 8. pozycji w ciągu i ma długość 5 znaków.

8. Tolower (string) i toupper (ciąg)

Tolower (ciąg) Funkcja konwertuje wszystkie znaki wielkiego w określonym ciągu na małe znaki, podczas gdy funkcja Toupper (String) konwertuje wszystkie małe znaki w określonym ciągu na znaki wielki. Na przykład, jeśli chcemy przekonwertować ciąg „Cześć, świat!„Do wszystkich małych liter możemy użyć następującego kodu:

awk 'start print toolower („Cześć, świat!") '
1awk 'start print toolower („Cześć, świat!") '

To będzie wyprowadzone "Witaj świecie!".

Podobnie, jeśli chcemy przekonwertować ten sam ciąg na wszystkie wielkie litery, możemy użyć następującego kodu:

awk 'start print toupper („Cześć, świat!") '
1awk 'start print toupper („Cześć, świat!") '

To będzie wyprowadzone "WITAJ ŚWIECIE!".

Wniosek

W tym artykule zbadaliśmy niektóre z najczęściej używanych funkcji manipulacji strunami w AWK. Funkcje te pozwalają nam wykonywać szeroką gamę zadań, takich jak znalezienie długości sznurka, wyodrębnienie podłoża, wyszukiwanie wzorów, podział ciągów na tablice i przekształcanie tekstu na różne przypadki. Opanując te funkcje, możemy stać się bardziej biegli w pracy z danymi tekstowymi w środowiskach UNIX i Linux i zwiększyć naszą wydajność jako analitycy danych i programistów.