Lệnh Grep: công cụ mạnh mẽ để tìm văn bản từ Terminal

Lệnh Grep

Hầu như ai có máy tính hoặc làm việc với máy tính sẽ biết phím tắt Ctrl + F để tìm văn bản. Chữ "F" bắt nguồn từ "Find", "to find" trong tiếng Anh và có thể được sử dụng, ví dụ, để tìm văn bản trên một trang web. Phím tắt này cũng có sẵn trong nhiều ứng dụng, có những chương trình sử dụng ký tự "B" cho "Tìm kiếm, nhưng các phím tắt này chỉ hoạt động nếu chúng ta đang ở bên trong ứng dụng và với tệp đang mở. Trong Linux, chúng tôi có các công cụ rất mạnh mà chúng tôi có thể khởi chạy từ Terminal và nếu chúng tôi muốn tìm bất kỳ văn bản nào trong nhóm của chúng tôi, chúng tôi sẽ sử dụng lệnh grep.

grep Đây là một lệnh sẽ giúp chúng tôi tìm văn bản trong tệp mà chúng tôi chỉ định. Tên của nó bắt nguồn từ g / re / p, một lệnh hoạt động cho một cái gì đó tương tự trong trình soạn thảo văn bản Unix / Linux. Giống như nhiều lệnh khác, grep Co nhiêu các tùy chọn có sẵn mà chúng tôi sẽ thêm dưới dạng các chữ cái và mỗi người sẽ phục vụ một nhiệm vụ khác nhau. Bằng cách kết hợp các tùy chọn này, chúng tôi sẽ có thể thực hiện các tìm kiếm phức tạp trong một hoặc nhiều tệp. Ở đây chúng tôi chỉ cho bạn mọi thứ bạn cần biết.

với grep chúng tôi sẽ tìm thấy bất kỳ văn bản nào trong bất kỳ tệp nào

Trước hết, chúng tôi sẽ giải thích các tùy chọn có sẵn:

  • i: sẽ không phân biệt chữ hoa và chữ thường.
  • w: buộc nó chỉ tìm được những từ cụ thể.
  • v: chọn những dòng không trùng nhau.
  • n: hiển thị số dòng có các từ được yêu cầu.
  • h: loại bỏ tiền tố khỏi tên tệp Unix trong đầu ra.
  • r: tìm kiếm các thư mục một cách đệ quy.
  • R: like -r nhưng theo tất cả các liên kết tượng trưng.
  • l: chỉ hiển thị tên tệp với các dòng được chọn.
  • c- Chỉ hiển thị một số lượng trên mỗi tệp của các dòng đã chọn.
  • -Màu sắc: Hiển thị các mẫu phù hợp với màu sắc.

Trong hình ảnh mà bạn có tiêu đề bài viết này, tôi đã tìm từ "Hình ảnh" trong tệp "830.desktop" có trong đường dẫn đó. Như bạn có thể thấy, tôi đã viết:

grep Imágenes /home/pablinux/Documentos/830.desktop

Hãy nhớ rằng trong bài viết này, chúng tôi sẽ viết các ví dụ phải được sửa đổi theo sở thích tìm kiếm của chúng tôi. Bằng cách nói "Tệp", "Word", v.v., chúng tôi sẽ đề cập đến tệp với đường dẫn của nó. Nếu tôi vừa viết "grep Images 830.desktop", tôi sẽ nhận được thông báo rằng tệp không tồn tại. Hoặc nó sẽ như vậy trừ khi tệp nằm trong thư mục gốc.

Các ví dụ khác sẽ là:

  • hình ảnh grep -i /home/pablinux/Documentos/830.desktop, trong đó "hình ảnh" sẽ là từ chúng ta muốn tìm và phần còn lại của tệp với đường dẫn của nó. Ví dụ này sẽ tìm kiếm "hình ảnh" trong tệp "830.desktop" không phân biệt chữ hoa và chữ thường.
  • hình ảnh grep -R: nó sẽ tìm kiếm tất cả các dòng của một thư mục và tất cả các thư mục con của nó mà từ "hình ảnh" được tìm thấy.
  • grep -c ví dụ test.txt: điều này sẽ tìm kiếm chúng tôi và hiển thị tổng số lần "ví dụ" xuất hiện trong tệp có tên "test.txt.

Với grep chúng tôi cũng có thể tìm kiếm các tệp

Nếu những gì chúng tôi muốn là tìm thấy tệp 830.desktop, chúng tôi sẽ viết lệnh sau:

grep 830.desktop

Điều này sẽ thực hiện một tìm kiếm tệp «830.desktop» trong thư mục cá nhân của chúng tôiTức là, nếu tệp nằm trong thư mục cá nhân của người dùng khác, nó sẽ không được tìm thấy. Đây là điều bình thường nhất trên thế giới bởi vì người dùng không có quyền truy cập nội dung của người khác mà không có mật khẩu của họ.

Cách thực hiện tìm kiếm đệ quy

grep nó cũng cho phép chúng tôi thực hiện các tìm kiếm tuân theo các quy tắc hoặc nguyên tắc định kỳ. Ví dụ: đọc tất cả các tệp trong mỗi thư mục có chứa từ "Pablinux". Đối với điều này, chúng tôi sẽ viết:

grep -r Pablinux /home/

O tốt:

grep -R Pablinux /home/

Chúng tôi sẽ thấy kết quả cho "Pablinux" trên một dòng riêng trước tên của tệp được tìm thấy trong đó. Nếu chúng ta không muốn thấy tên tệp trong đầu ra dữ liệu, chúng ta sẽ sử dụng tùy chọn -h (từ "hide"; hide):

grep -h -R Pablinux /home/

Chúng ta có thể tham gia các tùy chọn và viết "-hR" mà không có dấu ngoặc kép.

Cách thực hiện tìm kiếm từ chính xác

Đôi khi có những tệp chứa những gì chúng ta muốn tìm kiếm một thứ khác. Ví dụ, điều này có thể xảy ra với chúng ta trong các từ ghép và bằng cách tìm kiếm "rừng", chúng ta có thể tìm thấy "kiểm lâm". Nếu chúng tôi muốn tìm một từ chính xác chúng tôi sẽ sử dụng tùy chọn -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Lệnh trên sẽ tìm kiếm "rừng", bỏ qua kiểm lâm, trong tệp "holiday.txt" trong đường dẫn được chỉ định. Nếu những gì chúng ta muốn là tìm kiếm hai từ khác nhau, chúng ta sẽ sử dụng lệnh ví dụ:

egrep -w bosques|plantas /ruta/del/archivo

Biết bao nhiêu lần một từ xuất hiện trong một tệp

grep nó cũng có khả năng đếm bao nhiêu lần một từ xuất hiện trong một tệp. Đối với điều này, chúng tôi sẽ sử dụng tùy chọn -c:

grep -c prueba /ruta/al/archivo

Thêm tùy chọn -n, những gì chúng ta sẽ thấy là số dòng mà từ đó xuất hiện.

Tra cứu ngược

Chúng ta cũng có thể làm ngược lại, tức là tìm kiếm các dòng không chứa một từ. Đối với điều này, chúng tôi sẽ sử dụng tùy chọn -v, sẽ như sau:

grep -v la ruta/al/archivo

Lệnh trên sẽ hiển thị tất cả các dòng không chứa từ "the". Điều này có thể hữu ích trong các tài liệu hoặc danh sách trong đó một từ được lặp lại nhiều lần và vì lý do nào đó, chúng ta cần truy cập vào các dòng còn lại.

Truy cập thông tin hệ thống với grep

Mô hình PC

grep nó không chỉ có khả năng tìm kiếm trong các tệp. Nó cũng là có thể xem thông tin hệ thống. Trong ảnh chụp màn hình trước, chúng ta có thể thấy cách nó cho chúng ta thấy mẫu PC mà chúng ta có (tôi biết rằng nó không phải là máy tính xách tay mạnh nhất trên thế giới). Đối với điều này, chúng tôi đã sử dụng lệnh:

cat /proc/cpuinfo | grep -i 'Model'

O tốt:

grep -i 'Model' /proc/cpuinfo

Nếu những gì chúng ta muốn là xem tên của các đơn vị đĩa, chúng ta sẽ viết:

dmesg | egrep '(s|h)d[a-z]'

Cách chỉ liệt kê các tên tệp phù hợp

Nếu chúng tôi muốn xem danh sách chỉ có tên của các tệp phù hợp với tìm kiếm, chúng tôi sẽ sử dụng tùy chọn -l như được hiển thị bên dưới:

grep -l 'main' *.c

Và nếu chúng ta muốn nhìn thấy từ bằng màu sắc, chúng ta sẽ viết:

grep --color palabra /ruta/al/archivo

Như bạn thấy, lệnh grep là một công cụ rất mạnh mẽ Nó có giá trị đặc biệt là trong trường hợp chúng ta không nhớ nơi chúng ta đã viết một cái gì đó hoặc trong lập trình. Ngoài ra, nó giúp chúng tôi tìm hiểu thông tin về hệ thống theo cách mà những người yêu thích Terminal sẽ thích. Hướng dẫn về lệnh tìm văn bản này có hữu ích với bạn không grep?


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   nordi dijo

    Hello!
    Khi bạn nói rằng Grep cũng được sử dụng để tìm kiếm tệp, tôi nghĩ không chính xác vì nếu bạn chạy grep EXPRESSION và không chuyển tệp cho nó, nó sẽ đợi dữ liệu nhập từ đầu vào chuẩn.
    Theo trang hướng dẫn sử dụng:
    grep tìm kiếm các FILE đầu vào được đặt tên cho các dòng có chứa kết quả khớp với MẪU đã cho. Nếu không có tệp nào được chỉ định hoặc nếu tệp “-” được cung cấp, grep sẽ tìm kiếm đầu vào chuẩn.
    Vì vậy, bạn có thể sử dụng nó trong các đường ống, như đường dẫn bạn phân tích cú pháp đầu ra của / proc / cpuinfo bằng cách chuyển đầu ra của lệnh này làm đầu vào cho grep mà bạn có thể thực hiện tìm kiếm.
    lời chúc mừng

  2.   những câu văn hay dijo

    Bài rất hay.
    Bạn giải thích rất rõ và bạn đi thẳng vào vấn đề.