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
ðể tìm kiếm các dịng bắt đầu bằng từ “foo”, ta sử dụng câu lệnh:
grep ‘^foo’ data.txt
Việc sử dụng dấu trích dẫn đơn nói cho shell để ngun 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
grep ‘B[A-Za-z]’ data.txt