Ungkapan biasa (regex) digunakan untuk mencari urutan watak tertentu dalam fail. Simbol seperti huruf, digit, dan watak khas dapat digunakan untuk menentukan corak. Pelbagai tugas dapat diselesaikan dengan mudah dengan menggunakan corak regex. Dalam tutorial ini, kami akan menunjukkan kepada anda cara menggunakan corak regex dengan perintah 'awk'.
Watak asas yang digunakan dalam corak
Banyak watak boleh digunakan untuk menentukan corak regex. Karakter yang paling biasa digunakan untuk menentukan corak regex ditentukan di bawah.
Perwatakan | Penerangan |
---|---|
. | Padankan watak apa pun tanpa garis baru (\ n) |
\ | Nyatakan watak meta baru |
^ | Padankan permulaan garis |
$ | Padankan hujung garisan |
| | Tentukan pengganti |
() | Tentukan kumpulan |
[] | Tentukan kelas watak |
\ w | Padankan sebarang perkataan |
\ s | Padankan sebarang watak ruang kosong |
\ d | Padankan sebarang digit |
\ b | Padankan sebarang batas perkataan |
Buat fail
Untuk mengikuti tutorial ini, buat fail teks bernama produk.txt. Fail harus mengandungi empat bidang: ID, Nama, Jenis, dan Harga.
Nama Jenis Jenis Harga
p1001 15 "Monitor Monitor $ 100
p1002 A4tech Mouse Tetikus $ 10
p1003 Pencetak Samsung Pencetak $ 50
p1004 Pengimbas Pengimbas HP $ 60
p1005 Tetikus Logitech Mouse $ 15
Contoh 1: Tentukan corak regex menggunakan kelas watak
Perintah 'awk' berikut akan mencari dan mencetak baris yang mengandungi watak 'n' diikuti oleh watak 'er'.
$ produk kucing.txt$ awk '/ [n] [er] / mencetak $ 0' produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Output menunjukkan garis yang sesuai dengan corak. Di sini, hanya satu baris yang sesuai dengan corak.
Contoh 2: Tentukan corak regex menggunakan simbol '^'
Perintah 'awk' berikut akan mencari dan mencetak baris yang bermula dengan watak 'p' dan merangkumi nombor 3.
$ produk kucing.txt$ awk '/ ^ h.* 3 / cetak $ 0 produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Di sini, ada satu garis yang sesuai dengan corak.
Contoh 3: Tentukan corak regex menggunakan fungsi gsub
The gsub () fungsi digunakan untuk mencari dan mengganti teks secara global. Perintah 'awk' berikut akan mencari perkataan 'Scanner' dan menggantinya dengan kata 'Router' sebelum mencetak hasilnya.
$ produk kucing.txtProduk $ awk 'gsub (/ Scanner /, "Router")'.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Terdapat satu baris yang mengandungi perkataan 'Pengimbas', dan'Pengimbas'digantikan dengan perkataan'Penghala'sebelum baris dicetak.
Contoh 4: Tentukan corak regex dengan '*'
Perintah 'awk' berikut akan mencari dan mencetak sebarang rentetan yang bermula dengan 'Mo' dan menyertakan watak seterusnya.
$ produk kucing.txt$ awk '/ Mo * / mencetak $ 0' produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Tiga baris sepadan dengan corak: dua baris mengandungi perkataan 'Tetikus'dan satu baris mengandungi perkataan'Pantau'.
Contoh 5: Tentukan corak regex menggunakan simbol '$'
Perintah 'awk' berikut akan mencari dan mencetak baris dalam fail yang diakhiri dengan nombor 5.
$ produk kucing.txt$ awk '/ 5 $ / mencetak $ 0' produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Hanya ada satu baris dalam fail yang berakhir dengan nombor 5.
Contoh 6: Tentukan corak regex menggunakan '^' dan '|' simbol
The '^'simbol menunjukkan permulaan garis, dan'|'simbol menunjukkan pernyataan ATAU yang logik. Perintah 'awk' berikut akan mencari dan mencetak baris yang bermula dengan watak 'hlm'dan mengandungi salah satu'Pengimbas'atau'Tetikus'.
$ produk kucing.txt$ awk '/ ^ h.* (Pengimbas | Tetikus) / 'produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Hasilnya menunjukkan bahawa dua baris mengandungi perkataan 'Tetikus'dan satu baris mengandungi perkataan'Pengimbas'. Ketiga-tiga baris bermula dengan watak 'hlm'.
Contoh 7: Tentukan corak regex menggunakan simbol '+'
The '+'operator digunakan untuk mencari sekurang-kurangnya satu perlawanan. Perintah 'awk' berikut akan mencari dan mencetak baris yang mengandungi watak 'n' sekurang-kurangnya sekali.
$ produk kucing.txt$ awk '/ n + / print' produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Di sini, watak 'n'mengandung berlaku sekurang-kurangnya sekali dalam baris yang mengandungi perkataan Monitor, Pencetak, dan Pengimbas.
Contoh 8: Tentukan corak regex menggunakan fungsi gsub ()
Perintah 'awk' berikut akan mencari perkataan secara globalMesin pencetak'dan gantikannya dengan perkataan'Pantau' menggunakan fungsi gsub ().
$ produk kucing.txt$ awk 'gsub (/ Printer /, "Monitor") cetak $ 0' produk.txt
Output berikut akan dihasilkan setelah menjalankan perintah di atas. Baris keempat fail mengandungi perkataan 'Mesin pencetak'dua kali, dan dalam output,'Mesin pencetak'telah digantikan dengan perkataan'Pantau'.
Kesimpulannya
Banyak simbol dan fungsi yang dapat digunakan untuk menentukan corak regex untuk carian yang berbeza dan menggantikan tugas. Beberapa simbol yang biasa digunakan dalam corak regex diterapkan dalam tutorial ini dengan perintah 'awk'.