Hướng dẫn biểu thức chính quy Linux: Ví dụ về Regex Grep
Biểu thức chính quy của Linux là gì?
Biểu thức chính quy Linux là các ký tự đặc biệt giúp tìm kiếm dữ liệu và khớp các mẫu phức tạp. Biểu thức chính quy được viết tắt là 'regexp' hoặc 'regex'. Chúng được sử dụng trong nhiều chương trình Linux như grep, bash, đổi tên, sed, v.v.
Các loại biểu thức chính quy
Để dễ hiểu chúng ta hãy tìm hiểu từng loại Regex khác nhau.
Nhấp chuột vào đây nếu video không thể truy cập được
Biểu thức chính quy cơ bản
Một số lệnh thường được sử dụng với Biểu thức chính quy là tr, sed, vi và grep. Dưới đây là một số Regex cơ bản.
Mã | Description |
---|---|
. | thay thế bất kỳ ký tự nào |
^ | khớp với điểm bắt đầu của chuỗi |
$ | khớp với cuối chuỗi |
* | khớp bằng 0 hoặc nhiều lần ký tự trước đó |
\ | Đại diện cho các ký tự đặc biệt |
() | Nhóm biểu thức chính quy |
? | Khớp chính xác một ký tự |
Hãy xem một ví dụ.
Thực thi mẫu mèo để xem nội dung của tệp hiện có
Tìm kiếm nội dung có chứa chữ 'a'.
'^' khớp với phần đầu của một chuỗi. Hãy tìm kiếm nội dung BẮT ĐẦU bằng một
Chỉ những dòng bắt đầu bằng ký tự mới được lọc. Các dòng không chứa ký tự 'a' ở đầu sẽ bị bỏ qua.
Hãy xem xét một ví dụ khác –
Chỉ chọn những dòng kết thúc bằng t bằng cách sử dụng $
Khoảng thời gian Biểu thức chính quy
Những biểu thức này cho chúng ta biết số lần xuất hiện của một ký tự trong chuỗi. họ đang
Biểu hiện | Mô tả |
---|---|
{N} | Khớp chính xác với ký tự trước xuất hiện 'n' lần |
{n, m} | Khớp với ký tự trước xuất hiện 'n' lần nhưng không quá m |
{N, } | Chỉ khớp với ký tự trước khi nó xuất hiện 'n' lần trở lên |
Ví dụ:
Lọc tất cả các dòng có chứa ký tự 'p'
Chúng tôi muốn kiểm tra xem ký tự 'p' có xuất hiện chính xác 2 lần trong chuỗi lần lượt hay không. Đối với điều này, cú pháp sẽ là:
cat sample | grep -E p\{2}
Lưu ý: Bạn cần thêm -E với các biểu thức chính quy này.
Biểu thức chính quy mở rộng
Các biểu thức chính quy này chứa sự kết hợp của nhiều biểu thức. Một số trong số đó là:
Biểu hiện | Mô tả |
---|---|
\+ | Khớp với một hoặc nhiều lần xuất hiện của ký tự trước đó |
\? | Khớp 0 hoặc một lần xuất hiện của ký tự trước đó |
Ví dụ:
Tìm kiếm tất cả các ký tự 't'
Giả sử chúng ta muốn lọc ra các dòng trong đó ký tự 'a' đứng trước ký tự 't'
Chúng ta có thể sử dụng lệnh như
cat sample|grep "a\+t"
Mở rộng nẹp
Cú pháp mở rộng dấu ngoặc nhọn là một chuỗi hoặc danh sách các mục được phân tách bằng dấu phẩy bên trong dấu ngoặc nhọn “{}”. Các mục bắt đầu và kết thúc trong một dãy cách nhau bằng hai dấu chấm “..”.
Vài ví dụ:
Trong các ví dụ trên, lệnh echo tạo chuỗi bằng cách sử dụng phần mở rộng dấu ngoặc nhọn.
Tóm tắt:
- Biểu thức chính quy là tập hợp các ký tự được sử dụng để kiểm tra các mẫu trong chuỗi
- Chúng còn được gọi là 'regex' và 'regex'
- Điều quan trọng là phải học các biểu thức chính quy để viết script
- Một số biểu thức chính quy cơ bản là:
Mã | Description |
---|---|
. | thay thế bất kỳ ký tự nào |
^ | khớp với điểm bắt đầu của chuỗi |
$ | khớp với cuối chuỗi |
- Một số biểu thức chính quy mở rộng là:
Biểu hiện | Mô tả |
---|---|
\+ |
Khớp với một hoặc nhiều lần xuất hiện của ký tự trước đó |
\? | Khớp 0 hoặc một lần xuất hiện của ký tự trước đó |
- Một số biểu thức chính quy khoảng là:
Biểu hiện | Mô tả |
---|---|
{N} | Khớp chính xác với ký tự trước xuất hiện 'n' lần |
{n, m} | Khớp với ký tự trước xuất hiện 'n' lần nhưng không quá m |
{N, } | Chỉ khớp với ký tự trước khi nó xuất hiện 'n' lần trở lên |
- Việc mở rộng dấu ngoặc được sử dụng để tạo chuỗi. Nó giúp tạo ra nhiều chuỗi từ một.