Tutorial Bash Globbing

Bash Globbing Tutorial



Bash tidak menyokong ungkapan biasa asli seperti beberapa bahasa pengaturcaraan standard lain. Ciri shell Bash yang digunakan untuk mencocokkan atau mengembangkan jenis corak tertentu disebut globbing. Globbing digunakan terutamanya untuk mencocokkan nama fail atau mencari kandungan dalam fail. Globbing menggunakan watak wildcard untuk membuat corak. Watak wildcard yang paling biasa digunakan untuk membuat corak globbing dijelaskan di bawah.

'?' digunakan untuk memadankan mana-mana watak tunggal. Anda boleh menggunakan '?' untuk beberapa kali untuk memadankan pelbagai watak.







Contoh-1:



Katakan, anda ingin mencari nama fail teks yang namanya panjang 4 aksara dan panjangnya .txt . Anda boleh menggunakan corak glob dengan menggunakan ‘ ? 'Empat kali untuk melakukan tugas ini.



Cari senarai semua fail dan folder direktori semasa.





$ls-tempat

Jalankan perintah berikut mencari fail yang namanya panjang empat aksara dan tidak diketahui.

$ ls -l ????. txt



Contoh-2:

Katakan, anda ingin mencari fail dokumen yang namanya panjang 8 aksara, 4 aksara pertama f, o, o dan t dan lanjutan adalah dokumen . Jalankan arahan berikut dengan corak glob untuk mencari fail.

$ls -tempatkaki ????. doc

Contoh-3:

Katakan, anda tahu nama failnya ‘Terbaik’ dan lanjutan panjangnya 3 aksara, tetapi tidak tahu peluasannya. Jalankan arahan berikut dengan menggunakan '? 'Untuk mencari semua fail dengan nama' test 'yang mempunyai panjang tiga aksara.

$ls -tempatterbaik. ???

Asterisk - (*)

‘*’ digunakan untuk memadankan watak sifar atau lebih. Sekiranya anda mempunyai kurang maklumat untuk mencari fail atau maklumat apa pun maka anda boleh menggunakannya ‘*’ dalam corak glob.

Contoh -1:

Katakan, anda ingin mencari semua fail ‘Pl’ sambungan. Jalankan arahan berikut menggunakan ‘*’ untuk melakukan tugas itu.

$ls -tempat *.pl

Contoh-2:

Andaikan, anda hanya mengetahui watak permulaan nama fail sahaja yang mana 'ke' . Jalankan perintah berikut menggunakan ‘*’ untuk mencari semua fail dari direktori semasa yang namanya dimulakan 'ke' .

$ls -tempatke*.*

Contoh-3:

Anda boleh menggunakan ‘*’ dalam skrip bash untuk pelbagai tujuan tanpa mencari fail. Buat fail bash bernama ‘Check.sh’ dengan skrip berikut. Di sini, apabila pengguna akan menaip ' y ’atau‘ Y ’atau‘ ya ’atau‘ Ya ’ kemudian ‘Disahkan’ akan mencetak dan bila jenis akan menaip ‘N’ atau ‘N’ atau ‘tidak’ atau ‘Tidak’ kemudian ‘Tidak disahkan’ akan mencetak.

#! / bin / bash
membuang 'Adakah anda mahu mengesahkan?'
membacajawapan
kes $ jawapan dalam
[Yy]* ) membuang 'disahkan.';;
[Tidak]* ) membuang 'Tidak disahkan.';;
*) membuang 'Cuba lagi.';;
esac

Jalankan skrip.

$bashsemak.sh

Kurung Persegi - ([])

‘[]’ digunakan untuk memadankan watak dari julat. Beberapa deklarasi julat yang paling banyak digunakan disebutkan di bawah.

Semua huruf besar ditentukan oleh julat sebagai, [: atas:] atau [A-Z].

Semua huruf kecil ditentukan oleh julat sebagai, [: bawah:] atau [a-z].

Semua digit berangka ditentukan oleh julat sebagai, [: digit:] atau [0-9].

Semua huruf besar dan huruf kecil ditentukan oleh julat sebagai, [: alpha:] atau [a-zA-z].

Semua huruf besar, abjad huruf kecil dan digit ditentukan oleh julat sebagai, [: alnum:] atau [a-zA-Z0-9]

Contoh -1:

Jalankan arahan berikut untuk mencari semua fail dan folder yang namanya terkandung hlm atau apa atau r atau s .

$ls -tempat [p-s]*

Contoh-2:

Jalankan arahan berikut untuk mencari semua fail dan folder yang namanya bermula dengan digit dari 1 hingga 5.

$ls -tempat [1-5]*

Dia kekurangan - (^)

Anda boleh menggunakan ‘^’ dengan tanda kurung persegi untuk menentukan corak glob dengan lebih khusus. ‘^’ boleh digunakan di dalam atau di luar kurungan persegi. ‘^’ Digunakan di luar tanda kurung siku untuk mencari kandungan fail yang dimulakan dengan julat watak tertentu. ‘^’ Digunakan di dalam kurungan siku untuk menunjukkan semua kandungan fail dengan menyoroti garis yang dimulakan dengan sebilangan watak yang diberikan. Anda boleh menggunakan pelbagai jenis corak glob untuk mencari kandungan tertentu dari fail. 'cengkaman' arahan digunakan untuk carian kandungan dalam bash. Katakan, anda mempunyai fail teks bernama ‘List.txt’ dengan kandungan berikut. Uji contoh berikut untuk fail tersebut.

epal
4000
Pisang
700
Jingga
850
Pir
9000
nangka

Contoh - 1:

Jalankan arahan berikut untuk mencari baris dari senarai.txt fail yang bermula dengan P atau Q atau R .

$ grep '^ [P-R]' list.txt

Contoh - 2:

Jalankan arahan berikut untuk menyerlahkan garis dari senarai.txt fail yang bermula dengan A atau B atau C .

$ grep '[^ A-C]' list.txt

Tanda Seru - (!)

Anda boleh menggunakan '!' di dalam corak julat. Ia berfungsi sama seperti penggunaan simbol ‘^’ di luar corak julat. Beberapa contoh penggunaan '!' tanda diberikan di bawah.

Contoh - 1:

Jalankan arahan berikut untuk menunjukkan garis dari senarai.txt fail yang bermula dengan ‘P’ atau Q atau R .

$ grep [! P-R] list.txt

Contoh - 2:

Jalankan arahan berikut untuk menunjukkan garis dari senarai.txt fail yang bermula dengan sebarang digit dari 4 hingga 8 .

$ grep [! 4-8] list.txt

Tanda Dolar - ($)

'$' digunakan untuk menentukan watak akhir. Sekiranya anda tahu mahu mencari maklumat berdasarkan watak terakhir maka anda boleh menggunakan '$' dalam corak glob.

Contoh - 1:

Jalankan arahan berikut untuk mencari baris dari senarai.txt fail yang berakhir dengan 'ke' .

$ grep a $ list.txt

Contoh - 2:

Jalankan arahan berikut untuk mencari baris dari senarai.txt fail yang diakhiri dengan nombor lima puluh .

$ grep 50 $ list.txt

Kurung kerinting - ({})

‘{}’ boleh digunakan untuk memadankan nama fail dengan lebih daripada satu corak globbing. Setiap corak dipisahkan oleh ‘,’ dalam kurungan keriting tanpa ruang. Beberapa contoh diberikan di bawah.

Contoh - 1:

Jalankan arahan berikut untuk mencari fail yang namanya panjang 5 aksara dan lanjutannya ‘Sh’ atau dua watak terakhir fail tersebut 'St' dan lanjutannya adalah ‘Txt’ .

$ ls -l {?????. sh, * st.txt}

Contoh - 2:

Jalankan arahan berikut untuk menghapus semua fail yang mempunyai sambungan ‘Doc’ atau ‘docx’ .

$rm {*.doc,*.docx}

Paip– (|)

Tanda ‘|’ juga digunakan untuk menerapkan lebih dari satu syarat pada corak globbing. Setiap corak dipisahkan dengan simbol ‘|’ dalam arahan.

Contoh - 1:

Jalankan arahan berikut untuk mencari nama fail yang bermula dengan watak 'a' dan mempunyai pelanjutan 'bash' atau 'sh'.

$lske*+(.basuh|.sh)

Contoh - 2:

Buat fail bash bernama ‘Menu.bash’ dan tambahkan skrip berikut. Sekiranya jenis pengguna 1 atau S maka ia akan dicetak Mencari teks . Sekiranya jenis pengguna 2 atau R maka ia akan dicetak Menggantikan teks . Sekiranya jenis pengguna 3 atau D maka ia akan dicetak Memadamkan teks . Ia akan dicetak Cuba lagi untuk sebarang input lain.

#! / bin / bash
membuang 'Pilih mana-mana pilihan dari menu:'
membacajawapan
kes $ jawapan dalam
1 |S) membuang 'Mencari teks';;
2 |R) membuang 'Menggantikan teks';;
3 |D) membuang 'Memadamkan teks';;
*) membuang 'Cuba lagi.';;
esac

Jalankan skrip.

$bashmenu.bash

KESIMPULAN

Beberapa corak glob yang paling biasa dijelaskan dalam tutorial ini dengan menggunakan contoh yang sangat mudah. Saya harap setelah mengamalkan contoh di atas, konsep globbing akan jelas kepada anda dan anda akan dapat menerapkannya dalam perintah dan skrip bash dengan jayanya.

Untuk maklumat lebih lanjut, periksa video ini: