Có một chút kiến ​​thức máy tính cổ điển nói rằng "Nếu bạn gặp vấn đề, và quyết định giải quyết nó với các biểu thức thông thường, bây giờ bạn đã có hai vấn đề." Điều này tất nhiên bắt nguồn từ nhận thức rằng các biểu thức thông thường là phức tạp kết hợp các nhân vật ma thuật và Voodoo. Biểu thức chính quy có thể cho phép bạn đạt được logic chương trình thanh lịch và súc tích một cách nhanh chóng và dễ dàng, nhưng chỉ một khi bạn đã học được cách hiểu cách chúng hoạt động và tại sao. Chỉ cần về bất kỳ hệ thống Linux hoặc Mac đi kèm với một grep công cụ mạnh mẽ gọi grep và grep học tập là một nhiệm vụ cần thiết cho bất kỳ người sử dụng điện hoặc quản trị hệ thống. Hôm nay, chúng tôi sẽ khám phá một số những gì bạn có thể làm với grep và làm thế nào nó có thể là một trong những công cụ mạnh mẽ nhất trong kho vũ khí của bạn.

Làm thế nào nó hoạt động

Tóm lại, công việc của grep là tìm kiếm thông qua một khối đầu vào. Đó là khá mơ hồ, vì vậy nó được mô tả tốt nhất bằng ví dụ. Giả sử bạn có một tệp văn bản có tên distros.txt có danh sách các bản phân phối Linux, chẳng hạn như bản phân phối dưới đây.

Debian - Phân phối máy chủ ổn định
Ubuntu - Bản phân phối trên máy tính để bàn ban đầu dựa trên Debian
Kubuntu - Sử dụng máy tính để bàn KDE thay cho Gnome
Fedora - Tiếp tục hệ thống máy tính để bàn Red Hat miễn phí
Gentoo - Hệ thống Linux dựa trên nguồn nhanh cho người dùng chuyên nghiệp
SuSE - Linux thương mại thuộc sở hữu của Novell
Mint - distro có nguồn gốc từ Ubuntu với phần mềm bị hạn chế bổ sung

Grep có thể được sử dụng để đọc qua văn bản và lọc nó để chỉ hiển thị các phần bạn muốn. Nếu bạn muốn chỉ xem các dòng có chứa từ “Ubuntu”, bạn sẽ chạy lệnh sau:

 grep Ubuntu distros.txt 

(Phiên bản grep của bạn có thể hoặc có thể không bao gồm đánh dấu màu như trong ví dụ trên)

Trường hợp nhạy cảm

Bạn có thể nhận thấy rằng tìm kiếm cuối cùng của chúng tôi không trả lại Kubuntu. Trừ khi được nói cách khác, grep sẽ cho rằng bạn đã nhập biểu thức chính xác theo cách bạn muốn, và điều này áp dụng cho chữ hoa và chữ thường. Nếu bạn tìm kiếm “ubuntu” nhưng tệp văn bản của bạn chứa “Ubuntu”, tìm kiếm của bạn sẽ không tìm thấy gì cả. Để làm cho tìm kiếm của bạn không phân biệt chữ hoa chữ thường, hãy sử dụng nút chuyển đổi -i, như trong

 grep -i ubuntu distros.txt 

Cả từ

Với tìm kiếm trước, bạn đã bao gồm tất cả các biến thể viết hoa của từ “Ubuntu”. Nó bao gồm Kubuntu vì nó chứa từ bạn tìm kiếm. Bạn có thể muốn chỉ bao gồm các phiên bản tiêu chuẩn, không Kubuntu hoặc Edubuntu, vv Nếu đó là trường hợp, bạn có thể nói grep để phù hợp với toàn bộ từ chỉ bằng cách chuyển tùy chọn -w .

 grep -i ubuntu distros.txt 

Loại trừ

Nhiều như bạn có thể sử dụng grep để chỉ hiển thị các mục phù hợp, bạn cũng có thể sử dụng nó để hiển thị mọi thứ NHƯNG các mục phù hợp. Để mở rộng trên các tìm kiếm trước đây của chúng tôi, bây giờ chúng tôi có thể sử dụng tùy chọn -v để đảo ngược kết quả của chúng tôi và chỉ hiển thị các dòng không khớp.

Ký tự đại diện

Grep có hỗ trợ đầy đủ cho các ký tự đại diện khi các mẫu phù hợp. Khi sử dụng ký tự đại diện và các ký tự đặc biệt khác, bạn muốn đảm bảo mẫu tìm kiếm của mình nằm trong dấu ngoặc kép, do đó, trình bao Linux không cố gắng diễn giải chúng trước khi grep có thể. Các ký tự đại diện chung bao gồm * cho các nhóm ký tự và. đại diện cho một ký tự không xác định duy nhất.

Các dãy

Nếu các ký tự đại diện hơi quá rộng đối với bạn, bạn có thể chỉ định các ký tự riêng lẻ hoặc một phạm vi để bao gồm trong tìm kiếm của bạn. Các ký tự trong dấu ngoặc vuông sẽ được bao gồm trong mẫu tìm kiếm của bạn. Ví dụ: nếu bạn có tệp có danh sách như

 Mục 1 - táo Mục 2 - chuối Mục 3 - dừa Mục 4 - đào Mục 5 - Nho Mục 6 - Quả mơ 

Bạn có thể chọn một phạm vi cụ thể bằng cách sử dụng một cái gì đó như

 grep "Mục [2-4]" items.txt 

Grep là một công cụ vô cùng mạnh mẽ, và học nó triệt để có thể trả hết bằng mọi cách. Hiểu grep cũng làm cho nó đơn giản hơn nhiều để chuyển sang các công cụ điều khiển mạnh mẽ khác như sed và awk. Giữa ba công cụ này, một lượng lớn giao diện điều khiển và ma thuật kịch bản có thể được thực hiện với nỗ lực ít hơn nhiều so với khả năng. Nếu bạn là một fan hâm mộ của grep, hoặc muốn xem các công cụ khác như sed và awk được bảo hiểm ở đây, xin vui lòng thả một lưu ý trong các ý kiến.