Manipulasi
String salah satu konsep dasar skrip bash. Dalam pemrograman, string adalah salah satu tipe data yang merupakan urutan karakter yang berurutan. Penting bagi Anda untuk mengetahui cara membuat dan memanipulasi string di bash. Dalam panduan ini, kita akan mempelajari manipulasi string dalam skrip shell Bash dengan contoh sederhana. Anda akan merasa nyaman bekerja dengan string bash di akhir artikel ini.
Contents
Variable assignmentPanjang stringMengonversi string ke ArrayCase conversionString concatenationString slicingSearch and replaceRemove substringConclusionVariable assignment
Strings dapat ditetapkan ke variabel dan kemudian digunakan dalam skrip untuk diproses lebih lanjut. Misalnya, saya membuat variabel bernama “GREET_USER” dan mencetak string ke terminal.
$ GREET_USER="Halo, Terima kasih telah mengunjungi OSTechnix"$ echo "$GREET_USER"
Bash tidak memiliki sistem tipe yang kuat jadi jika Anda menetapkan nilai ke variabel itu akan diperlakukan sebagai tipe string. Anda dapat membuat string dengan tanda kutip tunggal, ganda, atau tanpa tanda kutip.
Ada perbedaan antara tanda kutip tunggal dan tanda kutip ganda di bash. Tanda kutip tunggal mencegah ekspansi variabel dan perintah sementara tanda kutip ganda mendukungnya. Lihatlah contoh di bawah ini.
I telah membuat variabel lain bernama “SITE_NAME” dan digunakan dalam variabel “GREET_USER”. Dalam tanda kutip ganda, variabel akan diperluas dan dalam tanda kutip tunggal, variabel tidak akan diperluas.
$ SITE_NAME=”OSTechnix”
## KUTIPAN GANDA $ GREET_USER="Halo, Terima kasih telah mengunjungi ${SITE_NAME}" $ echo " $GREET_USER"
# SINGLE QUOTES$ GREET_USER='Halo, Terima kasih telah mengunjungi ${SITE_NAME}'$ echo "$GREET_USER"
Length of the string
Untuk menemukan panjang string, Anda dapat menggunakan simbol #. Menemukan panjang string akan berguna dalam beberapa kasus di mana Anda harus menulis beberapa logika berdasarkan jumlah strings.
$ echo "${#SITE_NAME}"
Mengonversi string ke Array
Ada banyak cara untuk mengubah tipe data string menjadi array Tipe. Cara paling sederhana adalah dengan mengapit string di dalam kurung kurawal.
$ ARR_TYPE=($GREET_USER) $ echo ${ARR_TYPE[@]} $ for elemen di ${ARR_TYPE[@]}; do echo $element done
Metode kedua adalah dengan membagi string dan menyimpannya sebagai array berdasarkan pembatas yang digunakan dalam string. Pada contoh sebelumnya, spasi digunakan sebagai pemisah bidang (IFS) yang merupakan IFS default di bash. Misalnya, jika Anda memiliki string yang dipisahkan koma, Anda dapat mengatur IFS menjadi koma dan membuat array. Untuk detail lebih lanjut tentang IFS, lihat panduan berikut: Scripting
Bash – Sementara Dan Sampai Perulangan Dijelaskan Dengan Contoh
$ STR_TO_ARR="column1,column2,column3" $ IFS="," $ ARR=(${STR_TO_ARR}) $ untuk elemen di ${ARR[@]}; lakukan echo $elemen; done $ echo "${ARR[@]}"
Case conversion
Bash memiliki dukungan bawaan untuk konversi huruf besar-kecil. Anda harus menggunakan beberapa karakter khusus di akhir string untuk konversi huruf besar seperti yang ditunjukkan di bawah ini.
# KARAKTER KHUSUS, ==> Mengonversi seluruh string menjadi huruf kecil ^^ ==> Mengonversi seluruh string menjadi Huruf Besar ~~ = => Transpose Case , ==> Mengonversi huruf pertama saja menjadi huruf kecil ^ ==> Mengonversi huruf pertama saja menjadi huruf besar
# ---- LOWER TO UPPER CASE ---- $ L_TO_U="welcome to ostechnix" $ echo ${L_TO_U ^^} # ---- UPPER TO LOWER CASE ---- $ U_TO_L="SELAMAT DATANG DI OSTECHNIX" $ echo ${L_TO_U,} # ---- TRANSPOSE CASE ---- $TRS_CASE="Selamat datang di OsTechnix " $ echo ${TRS_CASE~~} # ---- HURUF PERTAMA KE HURUF RENDAH ---- $ F_TO_L="OSTECHNIX" $ echo ${F_TO_L,} # ---- HURUF PERTAMA KE UPPERCASE ---- $ F_TO_U ="ostechnix" $ echo ${F_TO_U^}
Anda juga dapat menggunakan pencocokan pola regex dan mengonversi case untuk kecocokan.
$ L_TO_U="welcome to ostechnix"$ echo ${L_TO_U^^[toe]}
String concatenation
Anda dapat menggabungkan beberapa string dengan menempatkan string satu sesudah yang lain. Bergantung pada bagaimana string Anda digabungkan, Anda juga dapat menambahkan karakter tambahan.
$ SITE_NAME="OSTechnix"$ MESSAGE="Selamat datang di"$ echo "${MESSAGE} {SITE_NAME}"
String slicing
String slicing adalah cara mengekstrak bagian string menggunakan posisi indeks. Setiap karakter dalam string diberi nilai Integer yang dapat digunakan untuk mengambil sebagian dari string. Nilai indeks berkisar dari 0 sampai N. Di bawah ini adalah sintaks untuk slicing.
{STRING:START:LENGTH} START => Mulai Posisi Indeks LENGTH => Panjang String dari posisi START
Jika LENGTH tidak ditentukan maka string akan dicetak sampai akhir dari posisi indeks START.
$ SITE_NAME="OSTechnix"$ echo ${SITE_NAME:2}
Dengan LENGTH yang diberikan, ia akan mencetak substring dari posisi indeks START dan berapa banyak karakter yang akan dicetak.
$ echo $ {SITE_NAME:2:2}
Anda juga dapat membalikkan string dengan banyak cara. Cara paling sederhana adalah dengan menggunakan perintah rev. Jika Anda ingin melakukan ini dengan cara bash tanpa menggunakan perintah eksternal apa pun, maka Anda harus menulis logikanya secara manual.
$ echo ${SITE_NAME} | rev
Search and replace
Ada cara asli untuk mencari dan mengganti karakter dalam string tanpa menggunakan perintah eksternal seperti sed atau awk.
Untuk mengganti kemunculan pertama substring, gunakan sintaks berikut.
{STRING/X/Y}Kemunculan pertama dari X akan digantikan oleh Y.
Lihat contoh di bawah ini di mana kemunculan pertama dari kata “linux” diganti dengan LINUX di huruf besar.
$ MESSAGE=”linux mengagumkan untuk digunakan.Ubuntu adalah salah satu linux yang kuat distribution”
$ echo $MESSAGE $ echo ${MESSAGE/linux/LINUX}
Untuk mengganti semua kemunculan kata, gunakan sintaks berikut.
$ echo ${MESSAGE//linux/LINUX}
Remove substring
Ada beberapa cara untuk menghapus substring dari string. Utilitas eksternal seperti sed, awk, atau tr dapat digunakan atau ada cara untuk melakukannya dengan cara asli bash.
Dalam cara asli bash, ekspansi parameter digunakan untuk menghapus substring. Anda harus menggunakan simbol % diikuti dengan pola untuk menghapus. Ini akan cocok dengan pola yang terakhir ditemukan dan menghapusnya.
Sebagai contoh, saya ingin menghapus kata-kata yang muncul setelah titik (.) sintaks berikut harus digunakan. Di sini apa pun yang muncul setelah titik (.) akan dihapus. Dalam kasus ini, pola terakhir yang cocok .com akan dihapus.
$ SITE_NAME="www.emka.web.id"$ echo ${SITE_NAME%.*}
Untuk mencocokkan kemunculan pertama dari pola tersebut, gunakan simbol persentase ganda
$ SITE_NAME ="www.emka.web.id"$ echo ${SITE_NAME%%.*}
Anda juga dapat menggunakan simbol # atau ## yang akan melakukan semacam penghapusan terbalik. Dengan simbol # tunggal, pola pertama dicocokkan dan semuanya sebelum pola dihapus.
$ SITE_NAME="www.emka.web.id"$ echo ${SITE_NAME#*.}
Dengan simbol ## ganda, yang terakhir pola cocok dan semuanya sebelum pola dihapus.
$ SITE_NAME="www.emka.web.id"$ echo ${SITE_NAME##*.}
Conclusion
Dalam artikel ini, kita telah melihat cara membuat string di bash dan berbagai cara untuk memanipulasi string. Untuk membiasakan diri dengan manipulasi string bash, luncurkan terminal dan mulailah mempraktikkan contoh yang diberikan dalam panduan ini. Jika Anda memiliki umpan balik atau pertanyaan, silakan gunakan bagian komentar di bawah.
Bash scripting guides:
Bash Scripting – Perintah Printf Dijelaskan Dengan ContohBash Scripting – Array Terindeks Dijelaskan Dengan ContohBash Scripting – Array Asosiatif Dijelaskan Dengan ContohBash Scripting – Untuk Loop Dijelaskan Dengan Pengalihan ContohBash Dijelaskan Dengan ExampleBash Scripting – Variabel Dijelaskan Dengan ExampleBash Scripting – Fungsi Dijelaskan Dengan ExampleBash Perintah Echo Dijelaskan Dengan Contoh Di LinuxBash Tutorial Heredoc Untuk Pemula