Mengeluarkan Karakter dari Rentetan dalam Bash

Removing Characters From String Bash



Kadang kala, anda mungkin perlu membuang watak dari rentetan. Apa pun alasannya, Linux menyediakan anda pelbagai alat terpasang dan berguna yang membolehkan anda mengeluarkan watak dari rentetan di Bash. Artikel ini menunjukkan cara menggunakan alat tersebut untuk membuang watak dari rentetan.

Artikel tersebut merangkumi cara melakukan perkara berikut:







  • Keluarkan watak dari rentetan menggunakan sed
  • Keluarkan watak dari rentetan menggunakan awk
  • Keluarkan watak dari rentetan menggunakan potongan
  • Keluarkan watak dari rentetan menggunakan tr

Perintah yang ditunjukkan dalam artikel ini dilaksanakan di Ubuntu 20.04 Focal Fossa. Perintah yang sama juga dapat dilakukan pada distribusi Linux lain yang mempunyai alat di atas yang tersedia. Kami akan menggunakan aplikasi Terminal lalai untuk menjalankan perintah. Anda boleh mengakses aplikasi Terminal menggunakan pintasan papan kekunci Ctrl + Alt + T.



Buang Karakter dari Rentetan Menggunakan sed

Sed adalah utiliti yang hebat dan berguna untuk mengedit aliran teks. Ini adalah penyunting teks tidak interaktif yang membolehkan anda melakukan manipulasi teks asas pada aliran input. Anda juga boleh menggunakan sed untuk menghilangkan watak yang tidak diingini dari rentetan.



Untuk tujuan demonstrasi, kami akan menggunakan rentetan sampel dan kemudian memasukkannya ke perintah sed.





Buang Karakter Tertentu dari Rentetan

Dengan menggunakan sed, anda boleh membuang watak tertentu dari rentetan. Contohnya, untuk mengeluarkan h dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | sed / h // '

Ini hanya akan menghilangkan kejadian pertama 'h' dalam rentetan.
Buang Karakter Tertentu dari Rentetan1
Untuk membuang semua kejadian 'h' dari rentetan, gunakan arahan berikut:



$membuang 'halo, apa khabar?' | sed 's / h // g'

Di mana g bermaksud global. Ia akan menghapus semua kejadian 'h' dalam rentetan.
Buang Karakter Tertentu dari Rentetan2

Keluarkan Watak Pertama dari Rentetan

Untuk mengeluarkan watak pertama dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | sed 's /^.//' fail

Di mana (.) Sepadan dengan watak tunggal dan (^) sepadan dengan watak apa pun di awal rentetan.
Keluarkan Watak Pertama dari Rentetan

Keluarkan Watak Terakhir dari Rentetan

Untuk mengeluarkan watak terakhir dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | sed 's /.$//'

Di mana ( . ) sepadan dengan aksara tunggal dan ($) sepadan dengan watak mana pun di hujung rentetan.
Keluarkan Watak Terakhir dari Rentetan

Keluarkan Watak Pertama dan Terakhir dari Rentetan

Untuk mengeluarkan watak pertama dan terakhir dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | sed 's /^.//; s /.$//'

Keluarkan Watak Pertama dan Terakhir dari Rentetan

Buang Karakter dari Rentetan Menggunakan awk

Awk adalah bahasa skrip kuat yang digunakan untuk pemadanan corak, bersama dengan pemprosesan teks. Awk membolehkan anda menyaring dan mengubah teks dengan pelbagai cara. Anda juga boleh menggunakan awk untuk membuang watak dari rentetan.

Untuk tujuan demonstrasi, kami akan menggunakan rentetan sampel dan kemudian memasukkannya ke perintah awk.

Buang Perwatakan Pertama Dari Rentetan

Untuk mengeluarkan watak pertama dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | awk '{substrat cetak ($ ​​0, 2)}'

Di mana ($ 0) adalah keseluruhan rentetan sasaran dan (2) adalah kedudukan permulaan watak. Perintah di atas membuang watak pertama, 'h,' nombor watak '1,' dan mengembalikan rentetan sasaran bermula dengan watak kedua, 'e.'
Buang Perwatakan Pertama Dari Rentetan

Keluarkan Dua Watak Pertama dari Rentetan

Anda juga boleh membuang sebilangan watak tertentu dari awal rentetan. Contohnya, untuk membuang dua watak pertama dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | awk '{substr cetak ($ ​​0, 3)}'

Perintah di atas akan membuang dua watak pertama, ‘dia’, atau nombor watak ‘1 dan 2,’ dan mengembalikan rentetan sasaran yang bermula dengan nombor watak ‘3,’ atau ‘l’.
Keluarkan Dua Watak Pertama dari Rentetan

Keluarkan Watak Terakhir dari Rentetan

Untuk mengeluarkan watak terakhir dari hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | awk '{substr cetak ($ ​​0, 1, panjang ($ 0) -1)}'

Di mana panjang ($ 0) -1 bermaksud menolak ' 1 Dari keseluruhan panjang watak.

Perintah di atas akan mencetak rentetan bermula dengan nombor watak ‘ 1 ' sehingga panjang ($ 0) -1 untuk menanggalkan watak terakhir.

Disana ada ' 19 Aksara (termasuk ruang) dalam rentetan di atas. Perintah akan berfungsi dengan mencetak semua watak, bermula dengan watak ' 1 'Dan hingga watak' 18 , 'Sambil mengeluarkan watak terakhir' 19 . '

rmv rentetan char frm terakhir

Buang Dua Watak Terakhir dari Rentetan

Untuk membuang dua watak terakhir dari hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | awk '{substr cetak ($ ​​0, 1, panjang ($ 0) -2)}'

Di mana panjang ($ 0) -2 bermaksud menolak ' 2 Dari keseluruhan panjang watak.

Perintah di atas akan mencetak rentetan, dimulai dengan nombor watak ‘ 1 'Dan hingga nombor watak' panjang ($ 0) -2 , 'Untuk membuang dua watak terakhir dalam rentetan.
Buang Dua Watak Terakhir dari Rentetan

Buang Karakter Pertama dan Terakhir dari Rentetan

Untuk mengeluarkan watak pertama dan terakhir dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | awk '{substr cetak ($ ​​0, 2, panjang ($ 0) - 2)}'

Di mana panjang ($ 0) -2 bermaksud menolak ' 2 Dari keseluruhan panjang watak.

Perintah di atas akan mencetak rentetan, dimulai dengan nombor watak ‘ 2 'Hingga nombor watak' panjang ($ 0) -2 , ’Untuk membuang watak pertama dan terakhir.

Buang Karakter Pertama dan Terakhir dari Rentetan

Buang Karakter dari Rentetan Menggunakan potongan

Cut adalah alat baris perintah yang biasanya digunakan untuk mengekstrak sebahagian teks dari rentetan atau fail dan mencetak hasilnya ke output standard. Anda juga boleh menggunakan perintah ini untuk membuang watak dari rentetan.

Untuk tujuan demonstrasi, kami akan menggunakan rentetan sampel dan kemudian memasukkannya ke perintah potong.

Keluarkan Watak Pertama dari Rentetan

Untuk mengeluarkan watak pertama dari rentetan, hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | potong -c 2-

Perintah ini akan mencetak rentetan, dimulai dengan watak kedua, sambil membuang watak pertama.
rmv potong -c

Keluarkan Empat Watak Pertama dari Rentetan

Untuk mengeluarkan empat watak pertama dari rentetan hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | potong -c 5-

Perintah ini akan mencetak rentetan, bermula dari aksara kelima, sambil membuang empat watak pertama.
Keluarkan Empat Watak Pertama dari Rentetan

Mencetak Rentetan Antara Karakter ke-2 dan ke-5

Untuk mencetak rentetan hello, apa khabar? antara watak kedua dan kelima , arahannya adalah:

$membuang 'halo, apa khabar?' | potong -c 2-5

Perintah ini akan mencetak rentetan, bermula dari aksara kedua dan hingga karakter kelima, sambil membuang aksara awal dan akhir yang tersisa.
rmv 2nd dan 5 c2

Keluarkan Watak Terakhir dari Rentetan

Untuk mengeluarkan watak terakhir dari rentetan hello, apa khabar? menggunakan potong perintah dengan rev , seperti berikut:

$membuang 'halo, apa khabar?' | rev | potong -c2- | rev

Perintah ini berfungsi dengan membalikkan rentetan terlebih dahulu, kemudian memotong watak pertama, dan akhirnya membalikkannya lagi untuk memberi anda output yang diinginkan.
02Keluarkan Karakter Terakhir dari Rentetan

Buang Empat Watak Terakhir dari Rentetan

Untuk membuang empat watak terakhir dari baris hello, apa khabar? arahannya adalah:

$membuang 'halo, apa khabar?' | rev | potong -c5- | rev

Perintah ini berfungsi dengan membalikkan rentetan terlebih dahulu, kemudian memotong empat aksara pertama, dan kemudian membalikkannya semula untuk memberi anda output yang diinginkan.
rmv empat watak terakhir

Buang Watak Pertama dan Terakhir dari Rentetan

Untuk mengeluarkan watak pertama dan terakhir dari rentetan hello, apa khabar? menggunakan potong perintah dengan rev , seperti berikut:

$membuang 'Hai dunia!' | potong -c2- | rev | potong -c2- |rev

Perintah ini berfungsi dengan memotong watak pertama, kemudian membalikkan rentetan dan memotong watak pertama, dan kemudian membalikkannya lagi untuk memberi anda output yang diinginkan.
rmv pertama dan terakhir

Buang Karakter dari Rentetan Menggunakan tr

Perintah tr (pendek untuk terjemahan) digunakan untuk menterjemahkan, memerah, dan menghapus watak dari rentetan. Anda juga boleh menggunakan tr untuk membuang watak dari rentetan.

Untuk tujuan demonstrasi, kami akan menggunakan rentetan sampel dan kemudian memasukkannya ke perintah tr.

Buang Semua Kejadian Perwatakan

Dengan menggunakan perintah tr, anda dapat membuang semua kejadian huruf kecil atau huruf besar dari rentetan anda. Sebagai contoh, untuk menghapus semua kejadian huruf kecil 'h' dari rentetan, perintahnya adalah:

$membuang 'Hello, apa khabar?' | NS -dh

buang semua kejadian 01

Begitu juga, untuk menghapus semua kejadian huruf besar 'H' dari rentetan, perintahnya adalah:

$membuang 'Hello, apa khabar?' | NS -dH

Anda juga boleh menggunakan urutan yang ditafsirkan untuk membuang huruf kecil atau huruf besar:

$membuang 'Hello, apa khabar?'| NS -d [: atas:]

kejadian lebih rendah

$membuang 'HELLO, apa khabar?'| NS -d [: lebih rendah:]

kejadian atas

Buang Semua Kejadian Huruf Kecil dan Huruf Besar

Anda juga boleh membuang semua kejadian huruf kecil dan huruf besar dari rentetan. Contohnya, perintah berikut akan menghapus semua kejadian watak 'h,' huruf kecil dan huruf besar.

$membuang 'Hello, apa khabar?' | NS -d‘HH’

kejadian atas dan bawah

Buang Semua Kejadian Karakter dalam Julat Tertentu

Untuk membuang semua kejadian watak dari rentetan dalam julat khusus 'd-h,' perintahnya adalah:

$membuang 'halo, apa khabar?' | NS -d 'd-h'

Perintah ini akan membuang semua watak dalam julat 'd-h' (d, e, f, g, h) dalam rentetan.
kejadian tertentu

Kesimpulannya

Di Linux, akan selalu ada lebih daripada satu cara untuk menyelesaikan pekerjaan yang sederhana. Perkara yang sama berlaku dengan membuang watak dari rentetan. Artikel ini menunjukkan kepada anda empat cara yang berbeza untuk melakukannya, bersama dengan beberapa contoh untuk membuang watak yang tidak diingini dari rentetan. Memutuskan alat mana yang akan digunakan semuanya bergantung pada pilihan anda dan, yang lebih penting, dari apa yang anda ingin capai.