Lọc cơ bản với grep

Một trong những lệnh tôi sử dụng nhiều nhất trong terminal là grep, thậm chí nhiều hơn cd o ls.

grep Nó có nhiều tùy chọn và cung cấp các khả năng khác nhau, tuy nhiên tôi sử dụng cách thông thường nhất có thể, nhưng hãy bắt đầu bằng cách giải thích Grep là gì?

grep chỉ đơn giản là một bộ lọc, nó là một lệnh hiển thị các dòng phù hợp với bộ lọc mà chúng ta đã khai báo.

Ví dụ: trong hệ thống của chúng tôi, chúng tôi có tệp / usr / share / doc / bash / FAQ và nội dung của tệp này là:

Xem nội dung tệp

Nếu bạn muốn liệt kê nội dung trong terminal bằng lệnh làm sao (vâng mèo, như mèo hehe) họ có thể làm được:

cat /usr/share/doc/bash/FAQ

Bây giờ, giả sử chúng tôi chỉ muốn liệt kê dòng của tệp đó nói về phiên bản, đối với điều này, chúng tôi sử dụng grep:

cat /usr/share/doc/bash/FAQ | grep version

Đặt nó trong terminal sẽ chỉ hiển thị cho bạn dòng có chứa "phiên bản" trong tệp đó, nó sẽ không hiển thị bất kỳ dòng nào không chứa từ đó nữa.

Điều gì sẽ xảy ra nếu tôi muốn hiển thị mọi thứ ngoại trừ dòng phiên bản?

Đó là, theo cách mà tôi đã giải thích cho bạn, mọi thứ phù hợp với bộ lọc sẽ được hiển thị, bây giờ tôi sẽ chỉ cho bạn cách làm cho mọi thứ hiển thị ngoại trừ những gì phù hợp với bộ lọc:

cat /usr/share/doc/bash/FAQ | grep -v version

Bạn có nhận thấy sự khác biệt? ... chỉ cần thêm -v nó đã tạo ra sự khác biệt rồi 😀

Vì vậy, nếu họ đặt grep nó sẽ chỉ hiển thị cho bạn những gì phù hợp với bộ lọc, nhưng nếu bạn đặt grep -v nó sẽ hiển thị cho bạn mọi thứ ngoại trừ bộ lọc.

Đến đây thì bài viết kết thúc, chỉ là một mẹo khác mà bây giờ có lẽ họ có thể coi thường nó nhưng ... họ không biết grep có thể hữu ích như thế nào, nó thực sự là một cứu cánh 😀

Liên quan


Để 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.   DMoZ dijo

    Chắc chắn là một lệnh rất linh hoạt, một khi bạn học cách xử lý nó, nó sẽ giúp cuộc sống của bạn dễ dàng hơn =) ...

  2.   vảy dijo

    Xin chào! .. .. thực sự là một lệnh rất hữu ích .. trong trường hợp của tôi, tôi sử dụng nó rất nhiều ..

    Ví dụ đơn giản sẽ là, ví dụ: dpkg -l | grep 'package' (trong trường hợp các bản phân phối dựa trên debian), nó được sử dụng để biết chúng ta đã cài đặt gói đó chưa.

    Thật tuyệt khi cung cấp những công cụ này cho toàn bộ cộng đồng của chúng tôi 😉

    1.    KZKG ^ Gaara dijo

      Cảm ơn bạn rất nhiều 😀
      Quả thực, grep mạnh như trí tưởng tượng của chúng ta hahahaha, cùng với awk (và cut) họ thực sự đạt được những điều kỳ diệu * - *

      Tôi sẽ sớm đưa ra một số mẹo khác cho công việc đầu cuối 😉
      Xin chào và cảm ơn cho bình luận của bạn.

      Tái bút: Thật thú vị với email của bạn LOL !!

  3.   lục giác dijo

    Rất tốt!! Vâng, chắc chắn grep là một trong những cứu tinh cho bất kỳ ai thích sử dụng thiết bị đầu cuối. Chỉ có một vài lưu ý: Bạn thực sự không cần phải sử dụng lệnh mèo. Bạn có thể đặt tên tệp dưới dạng tham số grep như sau:

    phiên bản grep / usr / share / doc / bash / FAQ

    Ngoài ra, ngay cả khi nó không thể, sẽ luôn có tùy chọn để chuyển hướng đầu vào lệnh bằng cách làm như sau:

    phiên bản grep </ usr / share / doc / bash / FAQ

    Sau đó có thể được thực hiện với bất kỳ lệnh nào, vì vậy không bao giờ cần sử dụng cat để gửi tệp đến đầu vào của lệnh.

    Việc sử dụng redirect thay vì cat sẽ khiến shell khởi chạy một quá trình ít hơn, do đó tiêu thụ ít tài nguyên hơn. Nó không phải là một sự khác biệt đáng kể, nhưng nó được coi là thực hành tốt.

    Mặt khác, grep trở nên thực sự hữu ích khi sử dụng biểu thức chính quy ... Nếu tôi muốn trợ giúp bằng cách tạo một bài đăng về biểu thức chính quy, tôi sẽ phải làm gì? Thêm một bài viết mới từ màn hình nền wordpress có đủ không?

    1.    KZKG ^ Gaara dijo

      Thật thú vị, tôi đã luôn quen với việc sử dụng nó với con mèo HAHAHAHA, cảm ơn vì mẹo 😀

      1.    Hugo dijo

        Với grep, bạn cũng có thể tạo các bộ lọc ít cơ bản hơn một chút, ví dụ:

        grep -B3 -A3 -E -i --color=auto -n "(desde|hacia)?linux(\.)?$" ~/miarchivo.txt

        Về cơ bản, điều này hiển thị các dòng chứa cụm từ chúng tôi đang tìm kiếm (có thể ở bất kỳ kết hợp nào giữa chữ hoa và chữ thường), cộng với ba dòng trước nó và ba dòng sau nó, làm nổi bật kết quả bằng một màu khác, đặt số dòng trên kết quả và cho phép bật các biểu thức chính quy mở rộng mà trong trường hợp này cho phép tìm kiếm trong “myfile.txt” cho tất cả các dòng kết thúc bằng desdelinux, hướng tới linux hoặc linux thuần túy (có hoặc không có điểm cuối).

        Nhân tiện, biểu thức chính quy cung cấp rất nhiều tính linh hoạt và mọi "geek" tốt với niềm đam mê phần mềm miễn phí nên học cách sử dụng chúng, hehe.

  4.   kéo lê dijo

    Cũng có thể sử dụng zgrep cho máy tính bảng trong .ta.gz, nó rất hữu ích khi chúng ta muốn xem lại nhật ký cũ. Chúc mừng

  5.   jhon dijo

    Chào. Cảm ơn vì bài đăng. Điều xảy ra với tôi rằng sử dụng grep, từ mà tôi viết trong các dòng xuất hiện không chuyển sang màu sắc. (nói chung là như thế này) [ví dụ: grep cat file.txt]
    đường kẻ và con mèo xuất hiện, nhưng con mèo không chuyển sang một màu nhất định để phân biệt nó
    (trong ccompus of my uni nó được nhìn thấy)
    Bạn có biết làm cách nào tôi có thể kích hoạt tùy chọn này không?
    Xin vui lòng nếu bạn có thể trả lời tôi. email của tôi là sps-003@hotmail.com

    1.    fdy nb dijo

      người bạn phải viết cat trong ngoặc kép 'cat' hoặc cũng có thể là "cat" theo sau là tên của tệp nơi anh ta muốn tìm nó

  6.   Enrique dijo

    Xin chào bạn, bạn hoàn toàn đúng, bạn có một cảm giác hữu ích tuyệt vời. Từ bây giờ, tôi đặt grep đầu tiên trong danh sách các lệnh yêu thích của mình.
    liên quan

  7.   vết quét dijo

    Và nó sẽ như thế nào để hiển thị nhân viên được lọc theo lương?