Cơ bản về các biểu thức chính quy

Một phần của tài liệu giáo trình linux (Trang 25 - 26)

Các biểu thức chính quy được sử dụng bởi phần lớn các câu lệnh. Chúng cung cấp một cách thuận tiện và đồng nhất để xác định các mẫu phù hợp . Chúng tương tự với các ký tự đại diện, nhưng chúng mạnh hơn rất nhiều. Chúng cung cấp một phạm vi rộng các mẫu lựa chọn. các ký tự đặc biệt được đưa ra ở dưới đây là các biểu thức chính quy thường được sử dụng:

Ký tự Ý nghĩa

. Tương ứng với một ký tự đơn bất kỳ ngoại trừ dòng mới * Tương ứng với không hoặc nhiều hơn các ký tự đứng trước ^ Tương ứng với bắt đầu của một dòng

$ Tương ứng với kết thúc một dòng \< Tương ứng với bắt đầu một từ \> Tương ứng với kết thúc một từ

[] Tương ứng với một trong các ký tự bên trong hoặc một dãy các ký tự [^] Tương ứng với các ký tự bất kỳ không nằm trong ngoặc

\ Lấy ký hiệu theo sau dấu gạch ngược

Trước tiên, trong một biểu thức chính quy, một ký tự bất kỳ không có ý nghĩa riêng cho chính nó. Ví dụ để tìm kiếm các dòng chứa chữ “foo” trong file data.txt sử dụng câu lệnh sau:

grep foo data.txt

grep ‘^foo’ data.txt

Việc sử dụng dấu trích dẫn đơn nói cho shell để nguyên các ký tự và bỏ qua chúng trong chương trình. Việc sử dụng dấu trích dẫn đơn là cần thiết khi sử dụng các ký tự đặc biệt.

grep ‘hello$’ data.txt

Các dòng bất kỳ kết thúc với chuỗi “hello” được trả lại. Để tìm kiếm một mẫu bắt đầu bằng một từ, sử dụng \<. Ví dụ:

grep ‘\<ki’ data.txt

biểu thức ở bên trên sẽ cho phép tìm kiếm các từ bắt đầu bằng ‘ki’ trong file data.txt. Để tìm kiếm mẫu ‘wee’ kết thúc của một từ, sử dụng:

grep ‘wee\>’ data.txt

Ở bảng bên trên, chú ý rằng dấu chấm sẽ phù hợp với một ký tự bất kỳ trừ dòng mới. Điều này có thể được thao tác, nếu chúng ta tìm kiếm tất cả các dòng chứa ký tự ‘C’ được theo sau bởi hai ký tự và kết thức bởi ký tự ‘s’, biểu thức chính quy có thể là:

grep ‘C..s’ data.txt

Biểu thức này có thể có các mẫu phù hợp như ‘Cats’, ‘Cars’ và ‘Cris’ nếu chúng được chứa trong file data.txt. Nếu bạn muốn xác định một dãy các ký tự, sử dụng một dấu gạch nối phân biệt ký tự bắt đầu và ký tự kết thúc của dãy. Khi bạn xác định một dãy, thứ tự phải giống như mã ASCII. Ví dụ, để tìm kiếm tất cả các dòng chứa một ký tự “B” theo sau bởi một ký tự thường sử dụng:

grep ‘B[a-z]’ data.txt

Cũng có thể xaca định nhiều giới hạn trong cùng một mẫu:

grep ‘B[A-Za-z]’ data.txt

Một phần của tài liệu giáo trình linux (Trang 25 - 26)

Tải bản đầy đủ (DOC)

(112 trang)
w