Tutorial Bash Globbing

Bash Globbing Tutorial



Bash tidak mendukung ekspresi reguler asli seperti beberapa bahasa pemrograman standar lainnya. Fitur shell Bash yang digunakan untuk mencocokkan atau memperluas jenis pola tertentu disebut globbing. Globbing terutama digunakan untuk mencocokkan nama file atau mencari konten dalam file. Globbing menggunakan karakter wildcard untuk membuat pola. Karakter wildcard paling umum yang digunakan untuk membuat pola globbing dijelaskan di bawah ini.

'?' digunakan untuk mencocokkan setiap karakter tunggal. Anda dapat gunakan '?' untuk beberapa kali untuk mencocokkan beberapa karakter.







Contoh 1:



Misalkan, Anda ingin mencari nama file teks yang panjangnya 4 karakter dan ekstensinya adalah .txt . Anda dapat menerapkan pola globbing dengan menggunakan ' ? ' empat kali untuk melakukan tugas ini.



Cari tahu daftar semua file dan folder dari direktori saat ini.





$ls-NS

Jalankan perintah berikut, cari file-file yang namanya empat karakter dan tidak dikenal.

$ls -l ????.txt



Contoh-2:

Misalkan, Anda ingin mencari file dokumen yang namanya terdiri dari 8 karakter, 4 karakter pertama adalah f, o, o dan T dan ekstensi adalah dokter . Jalankan perintah berikut dengan pola globbing untuk mencari file.

$ls -NSkaki????.doc

Contoh-3:

Misalkan, Anda tahu nama filenya adalah 'terbaik' dan ekstensi panjangnya 3 karakter, tetapi tidak tahu ekstensinya. Jalankan perintah berikut dengan menggunakan '? ' untuk mencari semua file dengan nama 'test' yang memiliki ekstensi tiga karakter.

$ls -NSterbaik.???

Tanda bintang – (*)

'*' digunakan untuk mencocokkan nol atau lebih karakter. Jika Anda memiliki lebih sedikit informasi untuk mencari file atau informasi apa pun, Anda dapat menggunakan '*' dalam pola globbing.

Contoh 1:

Misalkan, Anda ingin mencari semua file dari 'Pl' perpanjangan. Jalankan perintah berikut menggunakan '*' untuk melakukan tugas itu.

$ls -NS *.pl

Contoh-2:

Misalkan, Anda tahu karakter awal dari nama file saja yaitu 'ke' . Jalankan perintah berikut menggunakan '*' untuk mencari semua file dari direktori saat ini yang namanya dimulai dengan 'ke' .

$ls -NSke*.*

Contoh-3:

Anda dapat menerapkan '*' dalam skrip bash untuk berbagai keperluan tanpa mencari file. Buat file bash bernama 'check.sh' dengan skrip berikut. Di sini, ketika pengguna akan mengetik ' y' atau 'Y' atau 'ya' atau 'Ya' kemudian 'dikonfirmasi' akan mencetak dan kapan jenisnya akan diketik 'n' atau 'N' atau 'tidak' atau 'Tidak' kemudian 'Tidak dikonfirmasi' akan mencetak.

#!/bin/bash
dibuang 'Apakah Anda ingin mengkonfirmasi?'
Bacamenjawab
kasus $jawaban di dalam
[Y y]* ) dibuang 'dikonfirmasi.';;
[tidak]* ) dibuang 'Tidak dikonfirmasi.';;
*) dibuang 'Coba lagi.';;
esac

Jalankan skrip.

$pestacek.sh

Kurung Kotak – ([])

‘[]’ digunakan untuk mencocokkan karakter dari range. Beberapa deklarasi rentang yang paling sering digunakan disebutkan di bawah ini.

Semua huruf besar ditentukan oleh rentang sebagai, [:upper:] atau [A-Z] .

Semua huruf kecil ditentukan oleh rentang sebagai, [:lower:] atau [a-z].

Semua digit numerik ditentukan oleh rentang sebagai, [:digit:] atau [0-9].

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

Semua huruf besar, huruf kecil, dan angka ditentukan oleh rentang sebagai, [:alnum:] atau [a-zA-Z0-9]

Contoh 1:

Jalankan perintah berikut untuk mencari semua file dan folder yang namanya berisi P atau Apa atau R atau S .

$ls -NS [p-s]*

Contoh-2:

Jalankan perintah berikut untuk mencari semua file dan folder yang namanya dimulai dengan angka apa pun dari 1 hingga 5.

$ls -NS [1-5]*

Dia kurang – (^)

Anda dapat gunakan '^' dengan braket persegi untuk mendefinisikan pola globbing lebih spesifik. '^' dapat digunakan di dalam atau di luar braket persegi. '^' digunakan di luar tanda kurung siku untuk mencari konten file yang dimulai dengan rentang karakter tertentu. '^' digunakan di dalam tanda kurung siku untuk menampilkan semua konten file dengan menyorot garis yang dimulai dengan rentang karakter tertentu . Anda dapat menggunakan berbagai jenis pola globbing untuk mencari konten tertentu dari file. 'pegangan' perintah digunakan untuk pencarian konten di bash. Misalkan, Anda memiliki file teks bernama 'daftar.txt' dengan konten berikut. Uji contoh berikut untuk file itu.

apel
4000
pisang
700
jeruk
850
Pir
9000
nangka

Contoh 1:

Jalankan perintah berikut untuk mencari baris-baris itu dari list.txt file yang dimulai dengan P atau Q atau R .

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

Contoh – 2:

Jalankan perintah berikut untuk menyorot baris-baris tersebut dari list.txt file yang dimulai dengan A atau B atau C .

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

Tanda Seru – (!)

Anda dapat gunakan '!' di dalam pola jangkauan. Ini bekerja sama dengan penggunaan simbol '^' di luar pola rentang. Beberapa contoh penggunaan '!' tanda diberikan di bawah ini.

Contoh 1:

Jalankan perintah berikut untuk menampilkan baris-baris tersebut dari list.txt file yang dimulai dengan 'P' atau Q atau R .

$ grep [!P-R] list.txt

Contoh – 2:

Jalankan perintah berikut untuk menampilkan baris-baris tersebut dari list.txt file yang dimulai dengan digit apa pun dari 4 sampai 8 .

$ grep [!4-8] list.txt

Tanda Dolar – ($)

'$' digunakan untuk menentukan karakter akhir. Jika Anda tahu ingin mencari informasi berdasarkan karakter terakhir maka Anda dapat menggunakan '$' dalam pola globbing.

Contoh 1:

Jalankan perintah berikut untuk mencari baris-baris itu dari list.txt file yang diakhiri dengan 'ke' .

$ grep a$ list.txt

Contoh – 2:

Jalankan perintah berikut untuk mencari baris-baris itu dari list.txt file yang diakhiri dengan nomor lima puluh .

$ grep 50$ list.txt

Tanda kurung kurawal – ({})

‘{}’ dapat digunakan untuk mencocokkan nama file dengan lebih dari satu pola globbing. Setiap pola dipisahkan oleh ',' dalam kurung kurawal tanpa spasi. Beberapa contoh diberikan di bawah ini.

Contoh 1:

Jalankan perintah berikut untuk mencari file-file yang namanya 5 karakter dan ekstensinya adalah 'NS' atau dua karakter terakhir dari file tersebut adalah 'NS' dan ekstensinya adalah 'txt' .

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

Contoh – 2:

Jalankan perintah berikut untuk menghapus semua file yang ekstensinya 'doc' atau 'docx' .

$rm {*.dokter,*.docx}

Pipa– ( | )

Tanda ‘|’ juga digunakan untuk menerapkan lebih dari satu kondisi pada pola globbing. Setiap pola dipisahkan oleh simbol '|' pada perintah.

Contoh 1:

Jalankan perintah berikut untuk mencari nama file yang dimulai dengan karakter 'a' dan memiliki ekstensi 'bash' atau 'sh'.

$lske*+(.pesta|.NS)

Contoh – 2:

Buat file bash bernama 'menu.bash' dan tambahkan skrip berikut. Jika pengguna mengetik 1 atau S maka akan dicetak Mencari teks . Jika pengguna mengetik 2 atau R maka akan dicetak Mengganti teks . Jika pengguna mengetik 3 atau D maka akan dicetak Menghapus teks . Ini akan mencetak Coba lagi untuk masukan lainnya.

#!/bin/bash
dibuang 'Pilih opsi apa pun dari menu:'
Bacamenjawab
kasus $jawaban di dalam
1 |S) dibuang 'Mencari teks';;
2 |R) dibuang 'Mengganti teks';;
3 |D) dibuang 'Menghapus teks';;
*) dibuang 'Coba lagi.';;
esac

Jalankan skrip.

$pestamenu.bash

KESIMPULAN

Beberapa pola globbing yang paling umum digunakan dijelaskan dalam tutorial ini dengan menggunakan contoh yang sangat sederhana. Saya harap setelah mempraktikkan contoh di atas, konsep globbing akan jelas bagi Anda dan Anda akan dapat menerapkannya dalam perintah dan skrip bash dengan sukses.

Untuk info lebih lanjut cek video ini: