10 ví dụ về sử dụng lệnh grep trên Linux

  • Friday 17/12/2021

10 ví dụ về sử dụng lệnh grep trên Linux

Câu lệnh grep trong linux thường được sử dụng để tìm kiếm văn bản hoặc tìm kiếm tệp file có chứa nội dung khớp với các chuỗi hoặc từ mà bạn muốn tìm. Mặc định grep chỉ hiển thị các dòng khớp với mục tiêu mà bạn tìm kiếm. Trong bài viết này mình sẽ hướng dẫn các bạn cách dùng cậu lệnh grep căn bản này nhé.

 

1. Grep là gì?

GREP (Global regular expression print) là câu lệnh tiêu chuẩn để tìm kiếm các dòng nội dung có chứa một chuỗi hoặc từ khóa trong file trên môi trường Linux.Grep command là một lệnh đắc lực nhất trong các máy hệ Unix. Nó có khả năng tìm kiếm chính xác thông tin bạn cần trong file text. Bạn có thể tìm từ hoặc tìm theo mẫu bằng lệnh grep và các thông tin liên quan sẽ được in ra. Ban đầu, nó là một lệnh và một công cụ nhỏ, tuy nhiên, sysadmin vốn cần xử lý nhiều dịch vụ thông qua file cấu hình khác nhau đã sử dụng nó để truy vấn và tìm chính xác các bản ghi họ cần bằng lệnh nay nên nó là lệnh gần như không thể thay thế. Hệ điều hành Linux thường không có giao diện người dùng vì lý do an toàn. Trong trường hợp này, việc biết cách dùng Linux terminal là rất quan trọng để có thể quản lý được máy tính. Đó là lý do những lệnh như grep command tỏ ra vô cùng hiệu quả.

Câu lệnh grep trong Linux là một thành phần quan trọng không thể thiếu với những người đang sử dụng hệ điều hành này. Vì vậy nếu nó chưa được cài đặt trên hệ thống máy chủ của bạn, bạn có thể dễ dàng cài đặt gói ứng dụng này thông qua (apt-get trên Debian / Ubuntu và yum trên RHEL / CentOS / Fedora). Để cài đặt grep lên hệ thống của bạn, vui lòng sử dụng lệnh sau:

Debian/Ubuntu: # sudo apt-get install grep

RHEL/CentOS/Fedora: # sudo yum install grep

 

 

2. Cấu trúc của grep

Cấu trúc của grep sẽ như sau: grep [options] pattern [FILE]

  • grep – chỉ định lệnh grep
  • [options] – tùy chọn của lệnh
  • pattern – truy vấn cần tìm
  • [FILE] – file thực hiện tìm kiếm

Bạn có thể xem tài liệu hướng dẫn dùng lệnh và các tùy chọn khác nhau bằng cách thực thi dòng này: grep –help Như bạn thấy, lệnh này có thể làm được nhiều việc. Những tùy chọn quan trọng nhất của nó là: -i – tìm kiếm không quan trọng hoa thường. Nếu bạn muốn tìm từ “car” bạn có thể thấy kết quả của cả từ “CAR” -c – nó sẽ hiện số dòng khớp với mẫu tìm kiếm -r – tìm theo kiểu đệ quy trong thư mục hiện hành -n – tìm dòng và tìm thông tin khớp với số dòng -v – với tùy chọn này, chúng ta hiển thị dòng không khớp với mẫu cần tìm

3. Các ví dụ về sử dụng lệnh grep:

Để tiện thực hiện bài viết này, mình đã dùng VPS của P.A Việt Nam vì đây nhà nhà cung cấp VPS lớn và uy tín nhất mình biết. Công nghệ ảo hóa VPS tại P.A Việt Nam có thể chủ động reinstall OS theo ý mình và ngoài ra cũng hỗ trợ nhiều OS khác nhau.

Các bạn có thể tham khảo bài viết : Hướng dẫn Reinstall OS cho Cloud VPS trên hệ thống ảo hóa KVM 

Hoặc tham khảo bảng giá VPS của P.A Việt Nam tại các link dưới đây:

Cloud Server
Cloud Server Pro
Máy Chủ Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Mình sẽ sử dụng OS CentOS 7 trong bài này và bắt đầu hướng dẫn các bạn.

 

Grep Linux: tìm kiếm chuỗi ở trong file

Đây là lệnh cơ bản nhất và cũng thường được sử dụng nhất khi ta muốn tìm kiếm một chuỗi trong một file bất kì.

# grep "kb pa" kbpavietnam.txt

Trong ví dụ này ta tìm kiếm chuỗi “kb pa” ở trong file kppavietnam.txt

Kết quả sẽ hiển thị ngay trên màn hình terminal theo dòng nào có chứa chuỗi “kb pa” ở trong file. Và dòng này sẽ được highlight.

Grep Linux: tìm kiếm không phân chữ hoa / thường

Trong một số trường hợp chúng ta muốn kiểm tra trong file liệu có chuỗi mà chúng ta cần tìm hay không , mà không phân biệt hoa thường thì chúng ta sử dụng thêm options -i.

# grep -i "kb pa"

Trong ví dụ này thì chuỗi “KB PA” ở trong file cũng sẽ được tìm thấy. Vì nó không phân biệt hoa thường nữa.

Grep Linux: tìm kiếm chuỗi trong nhiều file

Ví dụ như chúng ta muốn tìm kiếm chuỗi “kb pa” nhưng ta ko nhớ rõ tên của file đó, mà ta chỉ nó file đó có đuôi là .txt. Vậy ta sẽ tìm kiếm tất cả file bằng cách sau.

# grep "kb pa" *.txt

kí tự * ở đây có nghĩa là bất kì file nào có đuôi là .txt sẽ đều được tìm kiếm.

Grep Linux: đếm số lần xuất hiện của chuỗi trong file

Ví dụ file kbpavietnam.txt nãy giờ chúng ta sử dụng, trong đó có 4 lần xuất hiện từ “kb pa”

Bây giờ chúng ta muốn đếm số lần xuất hiện của chuỗi “kb pa” có trong file kbpavietnam.txt. Ta thực hiện như sau.

# cat kbpavietnam.txt | grep -c "kb pa"

Kết quả sẽ trả về cho chúng ta là 4 trên màn hình terminal.

Grep Linux: tìm kiếm chuỗi trong tất cả các thư mục

Nếu bạn muốn tìm kiếm chuỗi trong một thư mục hiện tại , và nó có rất nhiều thư mục con ở trong đó thì cách tốt nhất để tìm kiếm không bị thiếu thư mục nào là chúng ta sử dụng options -r.

# grep -r "kb pa"

Grep Linux: tìm kiếm ngược

Chúng ta có thể sử dụng grep để tìm kiếm tất cả những dòng không chứa chuỗi mà chúng ta muốn tìm kiếm.

grep -v "kb pa" kbpavietnam.txt

Kết quả sẽ trả về cho chúng ta những dòng không chứa chuỗi “kb pa” trong file kbpavietnam.txt

Grep Linux: tìm kiếm chính xác chuỗi xuất hiện trong file

Để tìm kiếm chính xác chữ mình muốn tìm trong file thì chúng ta sử dụng options -w có trong lệnh grep. Sự khác nhau khi chúng ta sử dụng -w và không sử dụng -w đó là, nếu không sử dụng -w thì lệnh grep sẽ tìm kiếm tất cả những dòng có chứa chuỗi mà chúng ta tìm kiếm.

# grep -w "kbpavietnam" kbpavietnam.txt

Kết quả sẽ hiển thị ra dòng có chứa chính xác chuỗi ra màn hình terminal .

Grep Linux: hiển thị số thứ tự từng dòng của kết quả

Đôi khi chúng ta sẽ muốn biết kết quả của chuỗi mà chúng ta tìm thấy nằm ở dòng thứ mấy trong file. Để giải quyết vấn đề này chúng ta sử dụng lệnh grep với options -n.

# grep -n "kbpavietnam" kbpavietnam.txt

Grep Linux: hiển thị ra danh sách các file có chứa chuỗi cần tìm kiếm

Ví dụ như chúng ta đang ở trong một có rất nhiều file , mà bây giờ chúng ta muốn tìm kiếm liệu file nào có chứa chuỗi “kb pa” ?? Thi chúng ta sử dụng lệnh grep với options -l sẽ giúp chúng ta liệt kê ra các file có chứa chuỗi “kb pa”.

# grep -l "kb pa" *

Grep Linux: giới hạn số dòng output của lệnh grep

Trong một số trường hợp output của lệnh grep mà chúng ta sử có quá nhiều , thì chúng ta muốn giới hạn số dòng mình muốn nhìn thấy thì thực hiện như nào? Chúng ta sẽ sử dụng options -m có trong lệnh grep.

# grep -m2 "kb pa" kbpavietnam.txt

2 có nghĩa là số dòng mà bạn muốn nhìn thấy

Tổng kết

Như vậy chỉ với vài thao tác đơn giản, chúng ta đã có thể hiểu thêm về lệnh grep trên server rồi. Chúc các bạn thành công, các bạn có thể xem tham khảo thêm các bài viết liên quan đến server tại đây: https://kb.pavietnam.vn/category/vps-dedicated-colocation

HƠN 20 NĂM KINH NGHIỆM

P.A Việt Nam tiên phong trong thị trường Internet & Web.
Là nhà đăng ký tên miền lớn nhất Việt Nam.
Chuyên nghiệp trong lĩnh vực Tên miền, Lưu trữ Website.
Email, Máy Chủ, Thiết kế Web.

P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/