CƠ BẢN VỀ CHỨNG CHỈ LPI - Trang 35

26

Cơ bản về quản trị Linux

• b[cq]*e tương ứng bccqqe nhưng không tương ứng bccc (nếu một glob, nó cũng

tương ứng cái thứ nhất, nhưng cái thứ hai thì không)

• b[cq]*e tương ứng bqqcce nhưng không tương ứng cqe (nếu một glob, nó cũng

tương ứng cái thứ nhất, nhưng cái thứ hai thì không)

• b[cq]*e tương ứng bbbeee (với glob thì không)

• .* sẽ tương ứng bất kỳ chuỗi nào. (nếu một glob, nó sẽ tương ứng bất kỳ chuỗi nào

bắt đầu

với .)

• foo.* sẽ tương ứng bất kỳ chuỗi nào mà bắt đầu với foo (nếu một glob, nó sẽ tương

ứng bất kỳ chuỗi nào bắt đầu với bốn ký tự văn bản foo..)

Bây giờ, cho sự xem lại nhanh: dòng ac tương ứng regex ab*c vì dấu sao cho phép

biểu thức đứng trước (c) xuất hiện không lần. Nhắc lại, cần chú ý rằng ký tự mêta regex *
được biên dịch một cách khác cơ bản với ký tự * của glob.

3.1.10

Đầu và cuối dòng

Hai ký tự mêta cuối cùng chúng ta đề cập chi tiết ở đây là \^{} và \$, mà sử dụng để tìm
tương ứng đầu và cuối một dòng. Sử dụng \^{} tại đầu regex của bạn, bạn có thể khiến
mẫu "thả neo" tới đầu dòng. Trong ví dụ dưới đây, chúng ta sử dụng regex \^{}\# để tìm
bất kỳ dòng nào bắt đầu với ký tự \#:

$ grep ^{}# /etc/fstab

# /etc/fstab: static file system information.

#

3.1.11

Regex cho cả dòng

\^{}

và \$ có thể phối hợp để tương ứng một dòng trọn vẹn. Ví dụ, regex tới đây sẽ tương

ứng một dòng mà bắt đầu với ký tự \# và kết thúc bằng ký tự ., với bất kỳ số ký tự khác
giữa chúng:

$ grep ’^{}#.*\.$’ /etc/fstab

# /etc/fstab: static file system information.

Trong ví dụ trên, chúng ta bao quanh biểu thức chính quy dùng ngoặc đơn để ngăn ngừa

việc shell biên dịch \$}. Không có ngoặc đơn, \verb$| sẽ biến mất khỏi regex
trước khi grep có cơ hội thấy nó.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.