Fungsi rentetan AWK

Fungsi rentetan AWK

AWK adalah alat pemprosesan teks yang kuat yang biasa digunakan untuk memanipulasi dan menganalisis data dalam persekitaran Unix dan Linux. Salah satu ciri utama AWK adalah keupayaannya untuk memanipulasi rentetan menggunakan pelbagai fungsi terbina dalam.

Dalam artikel ini, kami akan meneroka beberapa fungsi manipulasi rentetan yang paling biasa digunakan dalam AWK.

  • panjang (rentetan): Mengembalikan panjang rentetan yang ditentukan.
  • substr (rentetan, permulaan, panjang): Mengembalikan substring rentetan yang ditentukan, bermula pada kedudukan yang ditentukan dan dengan panjang yang ditentukan.
  • indeks (rentetan, substring): Mengembalikan kedudukan kejadian pertama substring yang ditentukan dalam rentetan yang ditentukan.
  • berpecah (rentetan, array, pemisah): Pecahkan rentetan yang ditentukan ke dalam pelbagai substrings, menggunakan pemisah yang ditentukan untuk menentukan di mana untuk memecah rentetan.
  • sub (regexp, penggantian, rentetan): Ini menggantikan pertandingan ungkapan biasa yang pertama dari rentetan dengan "penggantian".
  • GSUB (regexp, penggantian, rentetan): Menggantikan semua kejadian ungkapan biasa yang ditentukan dalam rentetan yang ditentukan dengan rentetan pengganti yang ditentukan.
  • Padanan (String, Regexp): Mencari rentetan yang ditentukan untuk kejadian pertama ungkapan biasa yang ditentukan, dan mengembalikan kedudukan perlawanan dan panjang substring yang dipadankan dalam array.
  • Tolower (String) dan Toupper (String): Menukar semua huruf besar atau huruf kecil dalam rentetan yang ditentukan ke huruf kecil atau huruf besar.

Mari fahami semua fungsi rentetan satu persatu termasuk contohnya:

1. panjang (rentetan)

The panjang (rentetan) fungsi mengembalikan panjang rentetan yang ditentukan. Contohnya, jika kita mahu mencari panjang rentetan "Hai dunia!", Kita boleh menggunakan kod berikut:

awk 'bermula cetak panjang ("hello, dunia!") '
1awk 'bermula cetak panjang ("hello, dunia!") '

Ini akan dikeluarkan "13", Sejak rentetan "Hello, dunia!"Mempunyai 13 watak.

2. substr (rentetan, permulaan, panjang)

The substr (rentetan, permulaan, panjang) fungsi mengembalikan substring rentetan yang ditentukan, bermula pada kedudukan yang ditentukan dan dengan panjang yang ditentukan. Contohnya, jika kita mahu mengekstrak 5 aksara pertama rentetan "Hai dunia!", Kita boleh menggunakan kod berikut:

awk 'bermula cetak substr ("hello, dunia!", 1, 5) '
1awk 'bermula cetak substr ("hello, dunia!", 1, 5) '

Ini akan dikeluarkan "Helo", Oleh kerana 5 aksara pertama rentetan adalah "Hello".

3. indeks (rentetan, substring)

The indeks (rentetan, substring) fungsi mengembalikan kedudukan kejadian pertama substring yang ditentukan dalam rentetan yang ditentukan. Contohnya, jika kita ingin mencari kedudukan "dunia" substring dalam rentetan "Hello, World!", Kita boleh menggunakan kod berikut:

Awk 'Begin Print Index ("Hello, World!"," Dunia ") '
1Awk 'Begin Print Index ("Hello, World!"," Dunia ") '

Ini akan dikeluarkan "8", Sejak substring "dunia" bermula pada kedudukan ke -8 dalam rentetan.

4. berpecah (rentetan, array, pemisah)

The berpecah (rentetan, array, pemisah) fungsi memisahkan rentetan yang ditentukan ke dalam pelbagai substrings, menggunakan pemisah yang ditentukan untuk menentukan di mana untuk memecahkan rentetan. Sebagai contoh, jika kita mahu memecah rentetan "Apple, Pisang, Orange" ke dalam pelbagai substrings menggunakan koma sebagai pemisah, kita boleh menggunakan kod berikut:

awk 'bermula split ("epal, pisang, oren", a, ","); untuk (saya dalam a) cetak a [i] '
1awk 'bermula split ("epal, pisang, oren", a, ","); untuk (saya dalam a) cetak a [i] '

Ini akan dikeluarkan:

Output oren pisang epal 

5. sub (regexp, penggantian, rentetan)

The sub (regexp, penggantian, rentetan) fungsi menggantikan kejadian pertama ungkapan biasa yang ditentukan dalam rentetan yang ditentukan dengan rentetan pengganti yang ditentukan. Contohnya, jika kita mahu menggantikan hanya kejadian pertama huruf "o" dalam rentetan "Hello, World!"Dengan huruf" A ", kita boleh menggunakan kod berikut:

awk 'bermula sub ("o", "a", "hello, dunia!"); cetak '
1awk 'bermula sub ("o", "a", "hello, dunia!"); cetak '

Ini akan dikeluarkan "Hella, dunia!", Oleh kerana hanya kejadian pertama huruf "o" telah digantikan dengan huruf "a".

6. GSUB (regexp, penggantian, rentetan)

Fungsi GSUB (Regexp, Penggantian, String) menggantikan semua kejadian ungkapan biasa yang ditentukan dalam rentetan yang ditentukan dengan rentetan pengganti yang ditentukan. Contohnya, jika kita mahu menggantikan semua kejadian huruf "o" dalam rentetan "Hello, World!"Dengan huruf" A ", kita boleh menggunakan kod berikut:

awk 'bermula gsub ("o", "a", "hello, dunia!"); cetak '
1awk 'bermula gsub ("o", "a", "hello, dunia!"); cetak '

Ini akan mengeluarkan "hella, warld!", Kerana semua kejadian huruf" O "telah digantikan dengan huruf" A ".

7. Padanan (String, Regexp)

The Padanan (String, Regexp) fungsi mencari rentetan yang ditentukan untuk kejadian pertama ungkapan biasa yang ditentukan, dan mengembalikan kedudukan perlawanan dan panjang substring yang dipadankan dalam array. Contohnya, jika kita ingin mencari kedudukan dan panjang kejadian pertama perkataan "dunia" dalam rentetan "Hello, World!", Kita boleh menggunakan kod berikut:

awk 'bermula match ("hello, dunia!", /Dunia /); cetak rstart, rlength ''
1awk 'bermula match ("hello, dunia!", /Dunia /); cetak rstart, rlength ''

Ini akan dikeluarkan "8 5", Sejak perkataan "dunia" bermula pada kedudukan ke -8 dalam rentetan dan mempunyai panjang 5 aksara.

8. Tolower (String) dan Toupper (String)

The Tolower (String) fungsi menukarkan semua aksara huruf besar dalam rentetan yang ditentukan ke aksara huruf kecil, manakala fungsi ToUpper (String) menukarkan semua aksara huruf kecil dalam rentetan yang ditentukan ke aksara huruf besar. Contohnya, jika kita mahu menukar rentetan "Hello, World!"Untuk semua huruf kecil, kita boleh menggunakan kod berikut:

awk 'bermula print Tolower ("Hello, World!") '
1awk 'bermula print Tolower ("Hello, World!") '

Ini akan dikeluarkan "Hai dunia!".

Begitu juga, jika kita mahu menukar rentetan yang sama ke semua huruf besar, kita boleh menggunakan kod berikut:

awk 'bermula cetak toupper ("hello, dunia!") '
1awk 'bermula cetak toupper ("hello, dunia!") '

Ini akan dikeluarkan "HAI DUNIA!".

Kesimpulan

Dalam artikel ini, kami telah meneroka beberapa fungsi manipulasi rentetan yang paling biasa digunakan dalam AWK. Fungsi -fungsi ini membolehkan kita melakukan pelbagai tugas, seperti mencari panjang rentetan, mengekstrak substrings, mencari corak, memisahkan rentet. Dengan menguasai fungsi ini, kita boleh menjadi lebih mahir dalam bekerja dengan data teks dalam persekitaran Unix dan Linux dan meningkatkan produktiviti kami sebagai penganalisis data dan pengaturcara.