Tôi sử dụng 5 tùy chọn grep này để tìm kiếm bất cứ thứ gì một cách nhanh chóng

Tác giả T-X, T.M.Hai 17, 2025, 10:55:57 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Nâng cao khả năng tìm kiếm trên Linux của bạn với những cờ grep được thiết kế tinh tế này.

Lệnh grep trong Linux là một công cụ tìm kiếm mạnh mẽ. Theo kinh nghiệm của tôi, hầu hết sức mạnh của nó đến từ một vài tùy chọn nhất định. Đây là những tùy chọn mà tôi thường xuyên sử dụng để tìm kiếm thông tin trong các tập tin một cách nhanh chóng và chính xác.


1. Tìm kiếm mà không cần lo lắng về chữ hoa chữ thường

Một trong những thói quen đầu tiên tôi hình thành khi sử dụng grep là ngừng giả định rằng mình biết cách viết hoa hay viết thường một từ. Thay vì đoán mò, tôi để grep tự động xử lý việc đó. Đó là lý do grep có tác dụng với tùy chọn -i. Nó cho grep biết rằng nó hoàn toàn bỏ qua việc phân biệt chữ hoa chữ thường, điều mà tôi thường muốn khi tìm kiếm một mẫu nhất định.

Mã nguồn [Chọn]
grep -i "error" sample.txt

Với cờ -i, tôi có thể bắt mọi biến thể của từ "error" trong tệp: chữ hoa, chữ thường, chữ hỗn hợp. Tức là, không cần phải tạo biểu thức chính quy đặc biệt hoặc lặp lại các mẫu. Đó là một cờ nhỏ, nhưng nó giúp tôi tiết kiệm rất nhiều thời gian và giữ cho việc tìm kiếm đơn giản, đặc biệt khi tôi quét nhật ký hoặc làm việc với đầu ra không nhất quán.

2. Tìm kiếm trong toàn bộ thư mục

Tôi thường dùng tùy chọn -R để tìm kiếm đệ quy mỗi khi cần tìm kiếm nhiều hơn một tệp. Bởi vì, thành thật mà nói, hầu hết thời gian bạn không chỉ tìm kiếm ở một nơi. Cho dù đó là thư mục ghi chú, một dự án lập trình nhỏ hay một tập hợp các tệp văn bản đã tải xuống, tôi muốn grep tìm kiếm mọi thứ mà không cần tôi phải điều hướng qua từng thư mục theo cách thủ công.

Đó chính xác là những gì tùy chọn -R thực hiện. Nó yêu cầu grep duyệt qua toàn bộ cây thư mục và tìm kiếm bên trong mọi tập tin mà nó tìm thấy.

Mã nguồn [Chọn]
grep -R "cleanup"./Documents

Công cụ này quét thư mục "Documents" và tất cả các thư mục con của nó để tìm từ "cleanup". Nó cũng hiển thị tệp tin nơi tìm thấy chuỗi ký tự đó. Tôi thường sử dụng công cụ này khi tôi nhớ mang máng đã viết một thứ gì đó ở đâu đó nhưng không nhớ nó nằm trong tệp tin nào.

3. Ghép nhiều mục cùng một lúc

Đôi khi, một từ khóa tìm kiếm đơn giản không còn đủ nữa. Có thể tôi đang tìm kiếm một trong số nhiều thuật ngữ, hoặc tôi muốn khớp với một mẫu mà không cần chạy nhiều lệnh. Đó là lúc tôi chuyển sang sử dụng -E, tùy chọn này mở khóa các biểu thức chính quy mở rộng và làm cho grep linh hoạt hơn nhiều.

Giờ đây, bạn không cần phải viết những đoạn mã regex phức tạp nữa. Tôi đang nói về những mẫu nhỏ, thiết thực giúp cho việc tìm kiếm hàng ngày trở nên mượt mà hơn. Đây là một ví dụ:

Mã nguồn [Chọn]
grep -E "error|warning|failed" sample.txt

Với tùy chọn -E, toán tử | hoạt động như một phép toán logic OR. Nó cho phép tôi tìm kiếm nhiều thứ cùng một lúc. Điều này cực kỳ hữu ích khi tôi quét văn bản và muốn tìm một trong số ít các từ khóa.

Tôi thường dùng công cụ này khi xem lại thư mục ghi chú hoặc tập tin dự án và muốn tìm bất cứ thứ gì liên quan đến các từ khóa nhất định, ngay cả khi tôi không chắc mình đã dùng từ khóa nào. Nó cho cảm giác gọn gàng và nhanh hơn so với việc thực hiện nhiều lần tìm kiếm, và giúp tôi không bỏ sót điều gì quan trọng.

4. Nhận được kết quả chính xác hơn bằng cách chỉ so khớp toàn bộ từ

Một điều từng khiến tôi bối rối với grep là nhận được nhiều kết quả khớp hơn mức mong muốn. Tôi tìm kiếm một từ, và grep lại vui vẻ khớp cả từ đó bên trong các từ khác. Đôi khi điều đó không sao, nhưng đôi khi nó dẫn đến rất nhiều kết quả nhiễu. Đó là lúc tham số -w phát huy tác dụng. Nó cho grep biết chỉ khớp toàn bộ từ, không khớp bất kỳ phần nào được thêm vào đầu hoặc cuối từ.

Mã nguồn [Chọn]
grep -w "error" sample.txt

Với tùy chọn -w, grep sẽ khớp với "error" nhưng bỏ qua những từ như "errors" hoặc "terror". Sự khác biệt có thể rất nhỏ, nhưng khi bạn cần tìm kiếm chính xác, điều đó rất quan trọng. Tôi sử dụng tùy chọn này khi tìm kiếm trong các ghi chú cá nhân, kịch bản hoặc tệp văn bản nơi có thể xuất hiện các từ tương tự, nhưng tôi chỉ quan tâm đến từ chính xác đó. Nó giúp cho mọi thứ được gọn gàng hơn.

5. Lọc bỏ nhiễu bằng phương pháp khớp ngược

Tôi thích coi -v như một công tắc gạt của grep. Mọi cờ khác giúp bạn tìm thấy thứ bạn đang tìm kiếm. Và rồi -v xuất hiện và nói, " Thực ra, sao chúng ta không tìm kiếm mọi thứ ngoại trừ thứ đó? "

Và thành thật mà nói? Nó tuyệt vời. Cờ -v đảo ngược hoàn toàn ý tưởng của grep bằng cách loại trừ các dòng khớp với một mẫu.

Mã nguồn [Chọn]
grep -v "DEBUG" sample.txt

Thay vì hiển thị các kết quả khớp, nó ẩn chúng đi và chỉ hiển thị những thứ khác. Nó hữu ích hơn tôi tưởng. Khi tôi muốn bỏ qua các dòng có gắn thẻ nhất định, hoặc bỏ qua một số cụm từ lặp lại làm rối mắt, lệnh grep này trở thành lệnh tôi thường dùng.

Đó là danh sách rút gọn cá nhân của tôi. Có rất nhiều thứ khác bạn có thể khám phá với grep, nhưng thực sự bạn không cần một bộ công cụ khổng lồ để làm việc hiệu quả. Bạn cũng nên tìm hiểu thêm các lệnh quản lý tập tin khác.