Pelajari Linux

Mengganti String di Bash

Mengganti String di Bash

Bash adalah proses perintah yang kompatibel dengan shell UNIX yang tugas utamanya adalah memanipulasi string yang dilakukan di lingkungan shell. Pemrogram terkadang dipanggil untuk mengerjakan file yang berbeda. Mereka dapat menambah, menghapus, dan mengganti bagian atau seluruh file agar sesuai dengan pekerjaan mereka. Ini membutuhkan pengetahuan tentang mengganti string di bash. Penyimpanan data dapat bersifat sementara atau permanen, tergantung pada sifat datanya. String file sangat penting saat mengganti konten file.

Mengganti String di Bash

sed sangat penting dan berguna untuk membantu mengganti string dalam file dengan skrip bash. Editor string dapat digunakan dengan berbagai cara untuk mengganti konten file di bash. Editor string alternatif tetapi suara adalah awk yang dapat digunakan saat mengganti nilai string dari file menggunakan bash. Artikel ini akan menunjukkan dengan bantuan contoh bagaimana konten file dapat diganti di bash. Perhatikan bahwa pengetahuan dalam pola regex juga bisa sangat berharga saat mengganti string di bash.

Manipulasi String Bash

Saat melakukan penggantian kecil atau sederhana, sed tidak diperlukan. Bash dapat melakukan manipulasi.

Sebagai contoh:
Saat mengganti fosslinux.gif dengan .mp4, sed tidak diperlukan.
Untuk menjalankan proses menggunakan bash, gunakan teks kode di bawah ini:

#/bin/bash file_name="fosslinux.gif" new_extension="mp4" # Ganti .gif dengan .mp4 generate_file_name=$nama_file/.gif/.$new_extension echo generate_file_name

Mengganti String menggunakan sed

sed dapat disebut sebagai editor aliran. Sed dapat mengganti string dalam file. Mari kita lihat contoh file bernama singleboardbytes.txt yang memiliki informasi berikut:
Foss Linux adalah situs pembelajaran yang bagus untuk semua pengguna Linux. Lihat artikel yang diterbitkan oleh Foss Linux di situs mereka.

Sekarang dari file kita, kita perlu mengganti kata “situs” dengan “situs web” dan ganti nama file menjadi foslinux.txt.

Memahami sintaks sed

sed -i 's/search_string/replace_string/' nama file sed - adalah perintah yang digunakan dalam eksekusi sintaks di atas '-saya' - digunakan dalam modifikasi konten dalam file asli dengan bantuan string pengganti setiap kali nilai pencarian ada di file. 's' - ini adalah perintah pengganti'pencarian_string' - ini mewakili nilai string yang akan dicari penggantinya di file asli 'ganti_string' - ini mewakili nilai string yang digunakan untuk menggantikan nilai yang dicari. String harus cocok dengan string yang ditemukan oleh perintah 'search_string'. 'nama file' - ini adalah nama file dimana penggantian akan diterapkan.

Jalankan perintah berikut di terminal Anda:

sed 's/site/website/g' singleboardbytes.txt > fosslinux.txt

Penggantian String menggunakan sed

Catatan: Anda juga dapat menjalankan perintah di atas dengan meletakkannya sebagai skrip bash.
Mengganti menggunakan -saya perintah

Setelah menjalankan perintah, langkah selanjutnya adalah mengganti menggunakan -saya perintah. -saya adalah representasi untuk "di tempat", artinya file hanya diganti, dan tidak ada pembuatan file tambahan. Menggunakan contoh kami di atas, jalankan perintah berikut:

sed -i 's/site/website/g' singleboardbytes.txt

Mengganti menggunakan perintah -i

Dari gambar di bawah, Anda dapat melihat tanda seru yang mengatakan, File “/home/tuts/singleboardbytes.txt diubah pada disk.” ini menunjukkan bahwa perubahan telah berhasil dilakukan.

Perubahan dilakukan pada singleboardbytes.txt

Gambar di bawah ini adalah file yang berisi perubahan yang dilakukan pada langkah sebelumnya, baik terhadap nama file (singleboardbytes.txt ke fosslinux.txt) dan kata situs telah diubah menjadi situs web.

Perubahan terakhir setelah menjalankan perintah sed

Menggunakan variabel sebagai nilai pencarian dan pengganti

Dengan sedikit interpolasi, variabel dapat digunakan untuk melakukan penggantian string. Argumen sed pertama, dalam hal ini, harus menggunakan tanda kutip ganda, bukan tanda kutip tunggal single. Misalnya, kode Anda akan mirip dengan yang di bawah ini:

tuts()  local search=$1 local replace=$2 # Perhatikan tanda kutip ganda sed -i "s/$search/$replace/g" singleboardbytes.txt 

Menggunakan variabel sebagai nilai pencarian dan pengganti

sed memiliki dua rasa, yaitu: the GratisBSD dan Linux sed. Distro Linux menggunakan sed Linux sementara pengguna OS X menggunakan sed FreeBSD. Rasa ini sangat berbeda, dan karenanya seseorang tidak dapat mentransfer perintah dari satu rasa sed ke yang lain.

Misalnya, saat mengganti konten file menggunakan FreeBSD, pencadangan harus dilakukan menggunakan using .ekstensi bak. Atau Anda dapat memulai pencadangan dengan menggunakan pasangan tanda kutip kosong segera setelah notasi -i seperti yang ditunjukkan pada sintaks bash di bawah ini:

tuts()  pencarian lokal=$1 local replace=$2 sed -i "" "s/$search/$replace/g" singleboardbytes.txt 

Jika pencadangan tidak dilakukan saat menggunakan FreeBSD seperti yang diilustrasikan pada kode sintaks di atas, Anda akan mengalami kesalahan seperti yang ditunjukkan di bawah ini:

sed: 1: "/Users/user/path/tuts… ": karakter tambahan di akhir perintah h

Cara mengganti file dan mencocokkan pola digit menggunakan perintah sed

Jika Anda berhasil menjalankan skrip, pencarian untuk semua konten numerik yang ada dalam file akan dilakukan. Kemudian isinya akan diganti dengan menambahkan $ sebelum angka before.

#!/bin/bash # Periksa nilai argumen baris perintah ada atau tidak jika [ $1 != "" ]; lalu # Cari semua string yang berisi angka dan tambahkan $ sed -i 's/\b[0-9]\5\\b/$&/g' $1 fi

Mengganti string menggunakan perintah awk

Dalam hal ini, kita akan menggunakan perintah awk alih-alih perintah sed untuk mengganti konten file. Perbedaan di antara perintah-perintah ini adalah bahwa perintah sed secara langsung memperbarui file asli, yang tidak demikian dengan perintah awk.

#!/bin/bash # Periksa nilai argumen baris perintah ada atau tidak jika [ $1 != "" ]; lalu # Cari semua string berdasarkan tanggal awk 'sub("02/06/2020","12/06/2020")1' $1 > temp.txt && mv temp.txt $1 fi

Kesimpulan

Contoh di atas sangat penting untuk kemajuan Anda dalam mempelajari cara mengganti string di Bash. Oleh karena itu, untuk menjadi ahli dalam hal itu, Anda harus berlatih secara teratur. Mencari dan mengganti string dalam file mungkin tampak rumit, tetapi Anda akan merasa jauh lebih mudah dikelola saat mengikuti panduan kami dengan benar.

Poin yang perlu diperhatikan adalah bahwa menjalankan perintah kadang-kadang tampak lebih mudah dikelola, tetapi Anda harus berhati-hati untuk tidak mendatangkan malapetaka dari sed. Ketika Anda memasukkan perintah yang salah, Anda akan merusak komputer Anda, menyebabkan Anda lebih banyak masalah seperti kehilangan data. Oleh karena itu, agar aman, selalu salin dan tempel kode seperti itu ke terminal Anda. Ini akan mencegah kesalahan ejaan yang mungkin merusak mesin Anda. Kami harap artikel ini membantu Anda mempelajari cara mengganti string di bash menggunakan artikel ini.

Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...
WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...