Idiom pemboleh ubah yang lebih maju untuk pengurusan sensitiviti kes

Idiom pemboleh ubah yang lebih maju untuk pengurusan sensitiviti kes

Bila -bila masa kita bekerja dengan rentetan teks, lambat laun masalah kes muncul. Adakah perkataan perlu menjadi huruf besar sepenuhnya, huruf kecil sepenuhnya, dengan huruf yang dimodelkan pada permulaan perkataan atau ayat, dan sebagainya.

Idiom adalah ungkapan bahasa semulajadi tugas pengaturcaraan yang mudah. Contohnya, di Tidur 10 perintah (yang akan berhenti sejenak terminal yang bekerja selama sepuluh saat), perkataan tidur adalah ekspresi bahasa semulajadi mengenai pembinaan pengekodan berasaskan masa, yang dibangunkan dalam pakej perisian bash gnu coreutils.

Terdapat sebilangan idiom yang terikat dengan berubah-ubah khas (i.e. akhiran yang boleh ditambah kepada nama yang berubah -ubah, menunjukkan apa yang kita mahu lakukan dengan pemboleh ubah yang diberikan), yang boleh digunakan dalam bash untuk lebih mudah melakukan jenis penukaran ini dengan cepat dan tidak perlu digunakan sebagai contoh aliran SED Editor dengan ungkapan biasa untuk melakukan perkara yang sama.

Sekiranya anda berminat menggunakan ungkapan biasa, lihatlah Bash Regexps kami untuk pemula dengan contoh -contoh Advanced Bash Regex dengan Artikel Contoh!

Ini berfungsi dengan pembolehubah yang memerlukan pengubahsuaian kes, atau jika Ujian pernyataan jauh lebih mudah dan memberikan kelenturan yang hebat. Idiom boleh ditambah terus di dalam jika penyataan dan tidak perlu menggunakan subshell dengan sed.

Walaupun sintaks kelihatan sedikit kompleks untuk bermula, sebaik sahaja anda belajar sedikit trik sokongan mental untuk mengingati kunci yang betul, anda akan berjalan dengan baik untuk menggunakan idiom ini dalam skrip seterusnya atau skrip satu liner di baris arahan!

Dalam tutorial ini anda akan belajar:

  • Cara menggunakan ^, ^^, , dan ,, Idiom akhiran pembolehubah Bash
  • Cara menggunakan ungkapan biasa [] julat idiom dalam kombinasi dengan ini
  • Cara menggunakan ^ dan , idioms terus dari dalam jika pernyataan
  • Contoh terperinci mencontohkan penggunaan ^, ^^, , dan ,,
Idiom pemboleh ubah yang lebih maju untuk pengurusan sensitiviti kes

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran linux-bebas
Perisian Baris perintah bash, sistem berasaskan linux
Yang lain Sebarang utiliti yang tidak termasuk dalam shell bash secara lalai boleh dipasang menggunakan sudo apt-get memasang nama utiliti (atau pemasangan yum untuk sistem berasaskan redhat)
Konvensyen # - memerlukan komando linux untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-Memerlukan komando linux untuk dilaksanakan sebagai pengguna yang tidak istimewa


Contoh 1: Membuat huruf besar pembolehubah penuh

Mari kita mulakan dengan contoh yang menunjukkan cara mencetak pembolehubah sebagai huruf besar:

$ Var = "Buat saya huruf besar"; echo "$ var ^^" Buat saya huruf besar 

Kami mula -mula menetapkan pembolehubah Var ke buat saya huruf besar. Cara kami melakukan ini adalah dengan menggunakan ^^ Pada akhir nama pembolehubah - akhiran, idiom bash, untuk memberitahu penterjemah dalaman bash untuk menggantikan teks kami untuk versi huruf besar.

Perhatikan bahawa pada bila -bila masa seseorang menetapkan pemboleh ubah, seseorang akan menggunakan Var = sintaks, meninggalkan pemboleh ubah terkemuka ($) Idiom bash. Kegunaan berikutnya, yang tidak bertanggungjawab semula dengan sendirinya, akan menggunakan $ sintaks. Oleh itu, kegunaan echo $.

Anda juga boleh melihat dan digunakan di sekitar nama pembolehubah. Walaupun ini tidak diperlukan:

$ Var = 1; echo $ var 1 

Ia sangat mengesyorkan, dan saya secara peribadi mencadangkannya juga, untuk sentiasa mengutip pembolehubah dengan betul, kerana ia mengelakkan kesilapan dan juga isu-isu seperti di mana ia tidak jelas untuk bash di belakang layar apabila pemboleh ubah berakhir:

$ Var = "a"; echo "$ vara" 

Dalam contoh pertama, penterjemah bash melihat nama yang berubah -ubah bermula ($) dan terus membaca sehingga ia mencecah ruang, seperti yang dapat dilihat di sini:

$ Var = "a"; echo "$ var a" a 

Di sini kita harus memperkenalkan ruang hanya untuk menjadikannya echo bekerja dengan betul.

Dengan kata lain, dalam contoh bekas kami, nama pembolehubah yang dilihat oleh bash adalah Vara dan ia tidak dapat berpecah/melihat di mana pemboleh ubah berakhir dan selebihnya rentetan ke luar bermula atau bermula semula. Marilah kita membandingkannya dengan pembolehubah yang betul dengan betul dan :

$ Var = "a"; echo "$ var a" aa 

Di sini tiada masalah yang dilihat; jelas kepada penterjemah bash bahawa $ Var adalah pemboleh ubah dan a adalah teks yang perlu diikuti, terima kasih kepada pembolehubah kami dengan betul.

Ini juga diterjemahkan kembali, dengan cara yang kuat, menggunakan yang istimewa ^^ Idiom dan lain -lain idiom bash. Marilah kita contohnya:

$ Var = "Buat saya huruf besar"; echo $ var ^^ Buat saya huruf besar ^^ $ var = "Make Me UpperCase"; echo "$ var ^^" Buat saya huruf besar ^^ 

Dalam kes ini, Bash dapat melihat bahawa kami mahukan Var pembolehubah untuk dicetak, walaupun menafsirkan ^^ sebagai teks standard. Seperti yang dapat dilihat dengan jelas dari contoh -contoh ini dan sebelumnya, ia adalah amalan terbaik untuk sentiasa mengelilingi nama pembolehubah dan .

Contoh 2: Membuat pembolehubah penuh huruf kecil

Sekarang kita telah melihat bagaimana membuat huruf besar pembolehubah penuh dengan menggunakan ^^ Idiom, marilah kita melihat cara menukar pembolehubah penuh ke huruf kecil dengan menggunakan ,, Idiom:

$ Var = "Buat saya huruf kecil"; echo "$ var ,," Jadikan saya huruf kecil 

Ia adalah idiom sintaks yang menarik untuk digunakan ,, Sebagai akhiran kepada pemboleh ubah, tetapi ia berfungsi dengan betul seperti yang ditunjukkan.



Sedikit Trik Sokongan Mental untuk Mengingat Ini

Cara/kaedah yang baik untuk mengingati apa sahaja adalah dengan mengesahkan secara visual atau bayangkan apa sahaja yang perlu diingat. Sekiranya anda dapat menambahkan beberapa pembinaan mental ke atas ini, seperti membuat hubungan dengan perkara lain, anda mungkin akan ingat sama lain kali.

Ini adalah untuk melihat papan kekunci fizikal anda, dan jika anda menggunakan papan kekunci querty seperti saya, anda akan melihatnya ^ adalah shift-6 dan ',' betul-betul di sebelah m. Bagaimana ini membantu?

Pertama, The 6/^ kunci berada di bahagian atas, dan , kunci berada di bahagian bawah. Seterusnya, The , kunci juga yang ada di bahagian bawah paling dekat bukan alphabet-character ke 6 kunci. Akhir sekali, kedua -dua kunci berada di sebelah kanan papan kekunci yang mengingatkan seseorang bahawa idiom ini adalah akhiran, bukan awalan, kepada pembolehubah

Sebaik sahaja anda telah mengesahkan secara visual ini sekali atau dua kali, ia mungkin akan memori dalam ingatan dengan baik dan anda akan dapat menggunakan idiom ini dalam skrip bash seterusnya atau satu liner tanpa perlu rujukan semula sintaks.

Contoh 3: Menukar huruf tertentu

Kami juga boleh membuat huruf besar tertentu:

$ Var = "ababab cdcdcd"; echo "$ var ^^ b" ababab cdcdcd 

Atau huruf kecil:

$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd 

Terdapat dua gotchas/batasan di sini. Pertama, kita mesti pastikan untuk menentukan kes surat yang betul untuk bermula dengan. Oleh itu, menentukan pengganti huruf kecil untuk surat tersebut c Tidak akan berfungsi:

$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd 

Kerana tidak ada huruf kecil c dalam teks, hanya ada C (huruf besar), dan ini berfungsi dengan baik sebagai contoh yang ditunjukkan di atas yang terakhir.

Kami juga tidak dapat menentukan pelbagai huruf dengan menggunakan salah satu format yang boleh dianggap, tetapi tidak berfungsi:

$ Var = "ababab cdcdcd"; echo "$ var ,, cd" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var ,, c ,, d" ababab cdcdcd 

Cara untuk mendapatkan ini berfungsi dengan betul adalah menggunakan format ekspresi biasa [... senarai pemilihan ...], seperti berikut:

$ Var = "ababab cdcdcd"; echo "$ var ,, [cd]" ababab cdcdcd 

Memulakan ayat dengan huruf besar atau huruf kecil

Tukar hanya huruf pertama yang mungkin juga:

$ Var = "ababab cdcdcd"; echo "$ var^" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var," ababab cdcdcd 

Di sini kita menggunakan satu ^ atau , untuk membuat huruf besar atau huruf kecil.



Menggunakan idiom akhiran pembolehubah Bash ini dari dalam jika pernyataan

Kita juga boleh menggunakan idiom akhiran pembolehubah bash ini secara langsung dari dalam jika Penyataan:

$ Var = "abc"; jika ["$ var ^^" == "abc"]; Kemudian echo 'dipadankan!'; lain echo 'tidak sepadan!'; FI dipadankan! 

Di sini kita mempunyai pemboleh ubah Var dengan nilai ABC. Seterusnya, di dalam jika pernyataan, kita mengubah kandungan pembolehubah, secara dinamik, ke ABC dengan menggunakan $ Var ^^ Sebagai rentetan pertama kami di jika penyata. Seterusnya, kami bandingkan dengan ABC Dan kami mempunyai pertandingan, membuktikan bahawa penggantian sebaris kami menjadi huruf besar.

Ini lebih mudah kemudian memulakan subshell dan melakukan perkara yang sama dengan menggunakan sed dan ungkapan biasa:

$ Var = "abc"; jika ["$ (echo" $ var "| sed 's | [a-z] | \ u & | g')" == "abc"]; Kemudian echo 'dipadankan!'; lain echo 'tidak sepadan!'; FI dipadankan! 

The \ U & di dalam ini sed Arahan boleh dibaca sebagai 'Tukar apa -apa penangkapan (dilakukan oleh [A-Z] dan rujukan oleh & dalam \ U &)ke huruf besar (\ U ') setara dengan itu. Bandingkan kerumitan penyelesaian ini kepada yang sebelumnya.

Satu lagi jika contoh

$ Var = "abc"; jika [["$ var ^^ b" == * "b" *]]; Kemudian echo 'dipadankan!'; lain echo 'tidak sepadan!'; FI dipadankan! 

Dalam contoh ini, kami menukar teks ABC ke ABC dengan menggunakan $ Var ^^ b seperti yang diterangkan sebelumnya (huruf besar hanya huruf b). Kemudian kami menggunakan perbandingan yang mempunyai asterisk di sebelah kiri dan kanan huruf B. Ini bermaksud kita mencari ... apa -apa rentetan ... diikuti oleh B diikuti oleh ... apa -apa rentet B masing -masing).

Kesimpulan

Dalam artikel ini, kami meneroka idiom akhiran pembolehubah bash ^, ^^, , dan ,,. Kami melihat bagaimana mereka boleh digunakan untuk menggantikan rentetan ke varian atas dan huruf kecil mereka, dan bagaimana untuk bekerja dengan satu atau lebih huruf individu, termasuk membuat huruf besar atau huruf kecil.

Kami juga meneroka cara menggunakan idiom ini lebih jauh dari dalam bash jika pernyataan. Akhirnya kami memberikan trik sokongan memori yang dicadangkan untuk mengingati watak -watak yang boleh digunakan, dan di mana, sebagai idiom bash untuk penggantian teks atas dan kecil.

Tinggalkan kami pemikiran dengan perintah penggantian kes yang paling keren! Nikmati!

Tutorial Linux Berkaitan:

  • Skrip Bash: Jeda Skrip sebelum meneruskan
  • Advanced Bash Regex dengan contoh
  • Pengurusan proses latar belakang bash
  • Pengurusan skrip & proses bash berbilang threaded di…
  • Gelung bash dengan contoh
  • Pemboleh ubah bash khas dengan contoh
  • Masa skrip dan prosedur bash anda dari dalam kod
  • Bash regexps untuk pemula dengan contoh
  • Bandingkan rentetan dalam bash
  • Parsing pemboleh ubah yang betul dan memetik dalam bash