OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

grep

Chương trình chính mà chúng tôi sẽ sử dụng để làm việc với các biểu thức chính quy là người bạn cũ của chúng tôi, grep. Tên "grep" thực sự bắt nguồn từ cụm từ "in biểu thức chính quy toàn cầu", vì vậy chúng ta có thể thấy rằng grep có liên quan đến biểu thức chính quy. Về bản chất, grep tìm kiếm các tệp văn bản để tìm văn bản xuất hiện khớp với một biểu thức chính quy được chỉ định và xuất ra bất kỳ dòng nào có chứa kết quả khớp với đầu ra chuẩn.


Cho đến nay, chúng tôi đã sử dụng grep với các chuỗi cố định, như vậy:


[tôi @ linuxbox ~] $ ls / usr / bin | grep zip

[tôi @ linuxbox ~] $ ls / usr / bin | grep zip


Điều này sẽ liệt kê tất cả các tệp trong / usr / bin thư mục có tên chứa chuỗi con “zip”.

Sản phẩm grep chương trình chấp nhận các tùy chọn và đối số theo cách này:

grep [lựa chọn] biểu thức chính quy [tập tin...]

Ở đâu biểu thức chính quy là một biểu thức chính quy.

Dưới đây là danh sách các grep lựa chọn:


Bảng 19-1: Tùy chọn grep


Mô tả tùy chọn

Mô tả tùy chọn

-i Bỏ qua trường hợp. Không phân biệt ký tự viết hoa và viết thường. Cũng có thể được chỉ định --bỏ qua trường hợp.


hình ảnh

-v Đảo ngược trận đấu. Thông thường, grep in các dòng có chứa một kết quả phù hợp.

Tùy chọn này gây ra grep để in mọi dòng không chứa kết quả phù hợp. Cũng có thể được chỉ định --đảo ngược kết hợp.


hình ảnh

-c In số lượng kết quả phù hợp (hoặc không phù hợp nếu -v tùy chọn cũng được chỉ định) thay vì chính các dòng. Cũng có thể được chỉ định --đếm.


hình ảnh

-l In tên của mỗi tệp có chứa một kết quả phù hợp thay vì chính các dòng. Cũng có thể được chỉ định --files-with-match.


hình ảnh

-L Giống như tùy chọn -l, nhưng chỉ in tên của các tệp không chứa các kết quả trùng khớp. Cũng có thể được chỉ định --files-without- match.


hình ảnh

-n Bắt đầu mỗi dòng phù hợp với số dòng trong tệp. Cũng có thể được chỉ định - số dòng.


hình ảnh

-h Đối với các tìm kiếm nhiều tệp, hãy chặn đầu ra của tên tệp. Cũng có thể được chỉ định --không có tên tệp.


hình ảnh


Để khám phá đầy đủ hơn grep, hãy tạo một số tệp văn bản để tìm kiếm:

grep


[tôi @ linuxbox ~] $ ls / bin> dirlist-bin.txt [tôi @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [tôi @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [tôi @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [tôi @ linuxbox ~] $ ls dirlist * .txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt

[tôi @ linuxbox ~] $ ls / bin> dirlist-bin.txt [tôi @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [tôi @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [tôi @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [tôi @ linuxbox ~] $ ls dirlist * .txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt


Chúng tôi có thể thực hiện tìm kiếm đơn giản danh sách các tệp của chúng tôi như sau:



[tôi @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover

[tôi @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover


Trong ví dụ này, grep tìm kiếm tất cả các tệp được liệt kê cho chuỗi bzip và tìm thấy hai kết quả phù hợp, cả hai đều có trong tệp dirlist-bin.txt. Nếu chúng tôi chỉ quan tâm đến danh sách các tệp có chứa các kết quả phù hợp hơn là chính các tệp trùng khớp, chúng tôi có thể chỉ định -l tùy chọn:



[tôi @ linuxbox ~] $ grep -l bzip dirlist * .txt

dirlist-bin.txt

[tôi @ linuxbox ~] $ grep -l bzip dirlist * .txt

dirlist-bin.txt


Ngược lại, nếu chúng tôi chỉ muốn xem danh sách các tệp không chứa tệp trùng khớp, chúng tôi có thể thực hiện điều này:



[tôi @ linuxbox ~] $ grep -L bzip dirlist * .txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt

[tôi @ linuxbox ~] $ grep -L bzip dirlist * .txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: