GNU/Linux >> Belajar Linux >  >> Linux

Bash Seri Pemula #6:Operasi String di Bash

Mari kita manipulasi beberapa string!

Jika Anda terbiasa dengan variabel di bash, Anda sudah tahu bahwa tidak ada tipe data terpisah untuk string, int, dll. Semuanya adalah variabel.

Tetapi ini tidak berarti bahwa Anda tidak memiliki fungsi manipulasi string.

Pada bab sebelumnya, Anda telah mempelajari operator aritmatika di Bash. Dalam bab ini, Anda akan belajar bagaimana memanipulasi string menggunakan berbagai operasi string. Anda akan belajar cara mendapatkan panjang string, menggabungkan string, mengekstrak substring, mengganti substring, dan banyak lagi!

Dapatkan panjang string

Mari kita mulai dengan mendapatkan panjang string di bash.

String tidak lain adalah urutan (array) karakter. Mari buat string bernama distro dan inisialisasi nilainya ke “Ubuntu ”.

distro="Ubuntu"

Sekarang untuk mendapatkan panjang string distro, Anda hanya perlu menambahkan # sebelum nama variabel. Anda dapat menggunakan pernyataan gema berikut:

[email protected]:~/scripts$ echo ${#distro}
6

Perhatikan bahwa perintah echo adalah untuk mencetak nilai. {#string} adalah apa yang memberi panjang string.

Menggabungkan dua string

Anda dapat menambahkan string ke akhir string lain; proses ini disebut rangkaian string.

Untuk mendemonstrasikan, pertama-tama mari kita buat dua string str1 danstr2 sebagai berikut:

str1="hand"
str2="book"

Sekarang Anda dapat menggabungkan kedua string dan menetapkan hasilnya ke string baru bernama str3 sebagai berikut:

str3=$str1$str2

Tidak bisa lebih sederhana dari ini, bukan?

Menemukan substring


Anda dapat menemukan posisi (indeks) dari huruf atau kata tertentu dalam sebuah string. Untuk mendemonstrasikan, pertama-tama mari kita buat string bernama str sebagai berikut:

str="Bash is Cool"

Sekarang Anda bisa mendapatkan posisi tertentu (indeks) dari substring keren. Untuk mencapai itu, gunakan expr perintah:

[email protected]:~/scripts$ word="Cool"
[email protected]:~/scripts$ expr index "$str" "$word"
9

Hasil 9 adalah indeks di mana kata “Keren” dimulai di str string.

Saya sengaja menghindari penggunaan pernyataan kondisional seperti if, else karena dalam seri bash pemula ini, pernyataan kondisional akan dibahas nanti.

Mengekstrak substring

Anda juga dapat mengekstrak substring dari string; artinya, Anda dapat mengekstrak sebuah huruf, kata, atau beberapa kata dari sebuah string.

Untuk mendemonstrasikan, pertama-tama mari kita buat string bernama foss sebagai berikut:

foss="Fedora is a free operating system"

Sekarang katakanlah Anda ingin mengekstrak kata pertama "Fedora" di foss rangkaian. Anda perlu menentukan posisi awal (indeks) dari substring yang diinginkan dan jumlah karakter yang perlu Anda ekstrak.

Oleh karena itu, untuk mengekstrak substring “Fedora”, Anda akan menggunakan 0 sebagai posisi awal dan Anda akan mengekstrak 6 karakter dari posisi awal:

[email protected]:~/scripts$ echo ${foss:0:6}
Fedora

Perhatikan bahwa posisi pertama dalam sebuah string adalah nol seperti halnya dengan array di bash. Anda juga hanya dapat menentukan posisi awal substring dan menghilangkan jumlah karakter. Dalam hal ini, semuanya dari posisi awal hingga akhir string akan diekstraksi.

Misalnya, untuk mengekstrak substring “sistem operasi bebas” dari foss rangkaian; kita hanya perlu menentukan posisi awal 12:

[email protected]:~/scripts$ echo ${foss:12}
free operating system

Mengganti substring

Anda juga dapat mengganti substring dengan substring lain; misalnya, Anda dapat mengganti "Fedora" dengan "Ubuntu" di foss string sebagai berikut:

[email protected]:~/scripts$ echo ${foss/Fedora/Ubuntu}
Ubuntu is a free operating system

Mari kita lakukan contoh lain, mari kita ganti substring “gratis” dengan “populer”:

[email protected]:~/scripts$ echo ${foss/free/popular}
Fedora is a popular operating system

Karena Anda hanya mencetak nilai dengan perintah echo, string asli tidak diubah secara nyata.

Menghapus substring

Anda juga dapat menghapus substring. Untuk mendemonstrasikan, pertama-tama mari kita buat string bernama fakta sebagai berikut:

fact="Sun is a big star"

Anda sekarang dapat menghapus substring "besar" dari fakta string:

[email protected]:~/scripts$ echo ${fact/big}
Sun is a star

Mari kita buat string lain bernama sel:

cell="112-358-1321"

Sekarang katakanlah Anda ingin menghapus semua tanda hubung dari sel rangkaian; pernyataan berikut hanya akan menghapus kemunculan tanda hubung pertama di sel string:

[email protected]:~/scripts$ echo ${cell/-}
112358-1321

Untuk menghapus semua kemunculan tanda hubung dari sel string, Anda harus menggunakan garis miring ganda sebagai berikut:

[email protected]:~/scripts$ echo ${cell//-}
1123581321

Perhatikan bahwa Anda menggunakan pernyataan gema sehingga string sel tetap utuh dan tidak dimodifikasi; Anda hanya menampilkan hasil yang diinginkan!

Untuk memodifikasi string, Anda perlu menetapkan hasilnya kembali ke string sebagai berikut:

[email protected]:~/scripts$ echo $cell
112-358-1321
[email protected]:~/scripts$ cell=${cell//-}
[email protected]:~/scripts$ echo $cell
1123581321

Mengonversi huruf besar dan kecil dalam string

Anda juga dapat mengonversi string menjadi huruf kecil atau huruf besar. Pertama-tama mari kita buat dua string bernama legenda dan aktor:

legend="john nash"
actor="JULIA ROBERTS"

Anda dapat mengonversi semua huruf dalam legenda string menjadi huruf besar:

[email protected]:~/scripts$ echo ${legend^^}
JOHN NASH

Anda juga dapat mengonversi semua huruf dalam string aktor menjadi huruf kecil:

[email protected]:~/scripts$ echo ${actor,,}
julia roberts

Anda juga dapat mengonversi hanya karakter pertama legenda string menjadi huruf besar sebagai berikut:

[email protected]:~/scripts$ echo ${legend^}
John nash

Demikian juga, Anda hanya dapat mengonversi karakter pertama aktor string menjadi huruf kecil sebagai berikut:

[email protected]:~/scripts$ echo ${actor,}
jULIA ROBERTS

Anda juga dapat mengubah karakter tertentu dalam string menjadi huruf besar atau kecil; misalnya, Anda dapat mengubah huruf j dan n menjadi huruf besar dalam legenda string sebagai berikut:

[email protected]:~/scripts$ echo ${legend^^[jn]}
JohN Nash

Luar biasa! Ini membawa kita ke akhir tutorial ini di seri bash pemula. Unduh PDF di bawah ini dan praktikkan apa yang baru saja Anda pelajari.

Bash Bab 6 Latihan PertanyaanMasalah dan solusinya untuk mempraktikkan apa yang baru saja Anda pelajari di bab iniBash-Bab-6-Pertanyaan-Latihan-Buku Pegangan-Linux.pdf28 KB

Saya harap Anda menikmati melakukan manipulasi string di bash dan periksa bab berikutnya karena Anda akan belajar bagaimana menambahkan keterampilan pengambilan keputusan ke skrip bash Anda!


Linux
  1. Melakukan Operasi Tulis Atom Dalam File Di Bash?

  2. Konversikan string teks dalam bash ke array

  3. menggunakan acak untuk menghasilkan string acak di bash

  1. Cara Memisahkan String dalam Skrip Bash

  2. Bash Seri Pemula #9:Menggunakan Fungsi di Bash

  3. Bash Seri Pemula #8:Loop di Bash

  1. Operasi Matematika Bash (Aritmatika Bash) Dijelaskan

  2. String Gabungan Bash

  3. Apa yang dilakukan 'bash -c'?