Bash adalah proses perintah yang sesuai dengan shell UNIX yang tugas utamanya adalah memanipulasi rentetan yang dilakukan di persekitaran shell. Pengaturcara kadang-kadang diminta untuk mengerjakan fail yang berbeza. Mereka boleh menambah, menghapus, dan mengganti bahagian atau keseluruhan fail agar sesuai dengan karya mereka. Ini memerlukan pengetahuan untuk menggantikan tali dalam bash. Penyimpanan data boleh bersifat sementara atau kekal, bergantung pada sifat data. Rentetan fail sangat mustahak semasa mengganti kandungan fail.
Mengganti Rentetan dalam Bash
sed sangat penting dan berguna untuk mengganti rentetan dalam fail dengan skrip bash. Editor tali boleh digunakan dengan cara yang berbeza untuk menggantikan kandungan fail dalam bash. Editor rentetan suara tetapi ganti adalah awk yang dapat dimainkan ketika mengganti nilai rentetan dari fail menggunakan bash. Artikel ini akan menunjukkan dengan contoh bagaimana kandungan fail dapat diganti dalam bash. Perhatikan bahawa pengetahuan dalam corak regex juga dapat sangat berharga ketika mengganti string dalam bash.
Manipulasi Tali Bash
Semasa melakukan penggantian kecil atau sederhana, pemakaian tidak diperlukan. Bash boleh melakukan manipulasi.
Sebagai contoh:
Semasa menggantikan fosslinux.gif dengan .mp4, sed tidak diperlukan.
Untuk menjalankan proses menggunakan bash, gunakan teks berkod di bawah:
# / bin / bash file_name = "fosslinux.gif "new_extension =" mp4 "# Ganti .gif dengan .mp4 dihasilkan_file_name = $ file_name /.gif /.$ new_extension gema dihasilkan_file_name
Mengganti String menggunakan sed
sed boleh disebut sebagai penyunting aliran. Sed boleh menggantikan rentetan dalam fail. Mari kita lihat contoh fail yang disebut singleboardbytes.txt yang mempunyai maklumat berikut:
Foss Linux adalah laman pembelajaran yang bagus untuk mana-mana pengguna Linux. Lihat artikel yang diterbitkan oleh Foss Linux di laman web mereka.
Sekarang dari fail kami, kami perlu mengganti perkataan “tapak"Dengan"laman web"Dan ganti nama fail menjadi fosslinux.txt.
Memahami sintaksis sed
nama fail sed -i / search_string / Replian_string / ' sed - adalah perintah yang digunakan dalam pelaksanaan sintaks di atas '-i'- digunakan dalam pengubahsuaian isi dalam file asli dengan bantuan string pengganti setiap kali nilai pencarian ada di dalam file. 's'- ini adalah arahan pengganti'carian_string'- ini mewakili nilai rentetan yang akan dicari untuk diganti dalam fail asal'ganti_string'- ini mewakili nilai rentetan yang digunakan untuk menggantikan nilai yang dicari. String harus sesuai dengan string yang terdapat pada perintah 'search_string'. 'nama fail'- ini adalah nama fail di mana penggantian akan digunakan.
Laksanakan perintah berikut di terminal anda:
sed / laman web / laman web / g 'singleboardbytes.txt> fosslinux.txt
Catatan: anda juga dapat menjalankan perintah di atas dengan meletakkannya sebagai skrip bash.
Mengganti menggunakan -i perintah
Setelah menjalankan perintah, langkah seterusnya adalah mengganti menggunakan -i perintah. -i adalah representasi untuk "di tempat", yang bermaksud file hanya diganti, dan tidak ada pembuatan fail tambahan. Dengan menggunakan contoh kami di atas, jalankan arahan berikut:
sed -i / laman web / laman web / g 'singleboardbytes.txt
Dari gambar di bawah, anda dapat melihat tanda seru yang bertuliskan, "File / home / tuts / singleboardbytes".txt ditukar pada cakera."Ini menunjukkan bahawa perubahan telah berjaya dilakukan.
Gambar di bawah adalah fail yang berisi perubahan yang dilakukan pada langkah sebelumnya, baik pada nama file (singleboardbytes.txt ke fosslinux.txt) dan perkataan tapak telah ditukar menjadi laman web.
Menggunakan pemboleh ubah sebagai nilai carian dan penggantian
Dengan sedikit interpolasi, pemboleh ubah dapat digunakan untuk melakukan penggantian tali. Argumen sed pertama, dalam kes ini, harus menggunakan tanda petik berganda dan bukannya petikan tunggal. Contohnya, kod anda akan serupa dengan yang berikut:
tuts () carian tempatan = $ 1 tempatan ganti = $ 2 # Perhatikan tanda petik dua kali sed -i "s / $ search / $ substit / g" singleboardbytes.txt
sed mempunyai dua rasa, iaitu: the FreeBSD dan juga Linux sed. Distro Linux menggunakan sed Linux sementara pengguna OS X menggunakan sed FreeBSD. Rasa ini sangat berbeza, dan oleh itu seseorang tidak dapat mengalihkan perintah dari satu rasa yang lain ke rasa yang lain.
Sebagai contoh, sambil mengganti kandungan fail menggunakan FreeBSD, sandaran harus dilakukan dengan menggunakan .sambungan bak. Atau anda boleh memulakan sandaran dengan penggunaan tanda kutip kosong segera setelah notasi -i seperti yang ditunjukkan dalam sintaks bash di bawah:
tuts () carian tempatan = $ 1 ganti tempatan = $ 2 sed -i "" "s / $ search / $ Replant / g" singleboardbytes.txt
Sekiranya cadangan tidak dilakukan semasa menggunakan FreeBSD seperti yang digambarkan dalam kod sintaks di atas, anda akan mengalami ralat seperti yang ditunjukkan di bawah:
sed: 1: "/ Pengguna / pengguna / jalan / tut…": watak tambahan pada akhir arahan h
Cara mengganti fail dan memadankan pola digit menggunakan perintah sed
Sekiranya anda berjaya menjalankan skrip, pencarian semua kandungan berangka yang ada dalam fail akan dilakukan. Kemudian kandungannya kemudian akan diganti dengan menambahkan $ sebelum nombor.
#!/ bin / bash # Periksa nilai argumen baris perintah wujud atau tidak jika [$ 1 != ""]; kemudian # Cari semua rentetan yang mengandungi digit dan tambahkan $ sed -i's / \ b [0-9] \ 5 \ \ b / $ & / g '$ 1 fi
Mengganti rentetan menggunakan perintah awk
Dalam kes ini, kita akan menggunakan perintah awk dan bukannya perintah sed untuk mengganti kandungan fail. Perbezaan antara perintah ini adalah bahawa perintah sed langsung mengemas kini fail asal, yang tidak berlaku dengan perintah awk.
#!/ bin / bash # Periksa nilai argumen baris perintah wujud atau tidak jika [$ 1 != ""]; kemudian # Cari semua rentetan berdasarkan tarikh awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi
Kesimpulannya
Contoh di atas sangat penting untuk kemajuan anda dalam mempelajari cara mengganti tali di Bash. Oleh itu, untuk menjadi pandai, anda harus kerap berlatih. Mencari dan mengganti rentetan dalam fail mungkin kelihatan rumit, tetapi anda akan merasa lebih terkawal apabila mengikuti garis panduan kami dengan betul.
Yang perlu diperhatikan ialah menjalankan perintah mungkin kadang-kadang kelihatan lebih terkawal, tetapi anda harus berhati-hati agar tidak menimbulkan kekacauan. Apabila anda memasukkan arahan yang salah, anda akan mematikan komputer anda, menyebabkan anda lebih banyak masalah seperti kehilangan data. Oleh itu, untuk selamat, selalu salin dan tampal kod seperti yang ada di terminal anda. Ini akan mengelakkan kesalahan ejaan yang mungkin merosakkan mesin anda. Kami harap artikel ini membantu anda mempelajari cara mengganti rentetan dalam bash menggunakan artikel ini.