NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
19/08/2021
Lượt xem

Tìm hiểu cách dùng lệnh Grep trong Linux

19/08/2021
8 phút đọc
Lượt xem

Đánh giá

5/5 - (88 bình chọn)

Grep là từ viết tắt của Global Regular Expression Print. Lệnh grep trong Linux được sử dụng để tìm kiếm một chuỗi ký tự trong một file được chỉ định. Lệnh grep trong Linux sẽ rất tiện lợi khi tìm kiếm các file log lớn.

Sử dụng lệnh grep trong Linux

Lệnh grep bao gồm ba phần ở dạng cơ bản nhất của nó. Phần đầu tiên sẽ bắt đầu bằng grep, sau đó là mẫu bạn tìm kiếm. Sau chuỗi là tên file mà grep sẽ phải tìm kiếm.

Cú pháp lệnh grep trong Linux đơn giản nhất sẽ như sau:

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 25

Lệnh sẽ có thể chứa nhiều tùy chọn, biến thể mẫu và tên file. Kết hợp nhiều tùy chọn nếu cần để có được kết quả bạn muốn. Dưới đây là các lệnh grep trong Linux phổ biến nhất và đi kèm với các ví dụ.

Dùng lệnh grep trong Linux để tìm kiếm một file

Để in bất kỳ dòng nào từ file có chứa một mẫu ký tự cụ thể, trong trường hợp này là Phoenix trong file sample2, hãy chạy lệnh:

grep phoenix sample2

Grep sẽ hiển thị mọi dòng có kết quả phù hợp với từ Phoenix. Khi thực hiện lệnh này, bạn không nhận được kết quả phù hợp chính xác. Thay vào đó, thiết bị đầu cuối in các dòng có các từ chứa chuỗi ký tự bạn đã nhập. Đây là một ví dụ:

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 26

Lưu ý: Nếu mẫu tìm kiếm của bạn bao gồm các ký tự không phải chữ và số, hãy sử dụng dấu ngoặc kép. Điều này bao gồm các khoảng trống hoặc bất kỳ ký hiệu nào.

Dùng lệnh grep trong Linux để tìm kiếm nhiều file

Để tìm kiếm nhiều file bằng lệnh grep, hãy chèn các tên file bạn muốn tìm kiếm, được ngăn cách bằng ký tự khoảng trắng.

Trong trường hợp này, lệnh rep để khớp với từ Phoenix trong ba file sample, sample 2 và sample 3 trông giống như ví dụ sau:

grep phoenix sample sample2 sample3

Thiết bị đầu cuối in ra tên của mọi file chứa các dòng phù hợp và các dòng phải bao gồm chuỗi ký tự bắt buộc.

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 27

Bạn có thể kết nối bao nhiều tên file nếu bạn cần. Thiết bị đầu cuối sẽ in ra một dòng với tên file cho mọi kết quả khớp mà nó tìm thấy trong các file được liệt kê.


Để quản lý log file bạ có thể tìm hiểu thêm về Logrotate.

Dùng lệnh grep trong Linux để tìm kiếm tất cả các file trong thư mục

Để tìm kiếm tất cả các file trong thư mục hiện tại, hãy sử dụng dấu hoa thị thay vì tên file ở cuối lệnh grep.

Trong ví dụ này, chúng tôi sử dụng nix làm tiêu chí tim kiếm:

grep nix *

Output hiển thị tên của file bằng nix và trả về toàn bộ các dòng.

Dùng lệnh grep trong Linux để tìm toàn bộ các từ

Lệnh grep chỉ cho phép bạn tìm và in kết quả cho toàn bộ từ. Để tìm kiếm từ Phoenix trong tất cả các file trong thư mục hiện tại, hãy thêm -w vào lệnh grep.

grep -w phoenix *

Tùy chọn này chỉ in các dòng có kết quả khớp toàn bộ từ và tên của các file mà nó tìm thấy:

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 28

Khi bỏ qua -w, grep sẽ hiển thị mẫu tìm kiếm ngay cả khi nó là một chuỗi con của một từ khác.

Nếu bạn muốn tìm kiếm nhiều chuỗi và các mẫu từ, hãy xem bài viết của chúng tôi về cách grep cho nhiều chuỗi, mẫu hoặc từ.

Dùng lệnh grep trong Linux để tìm kiếm thư mục con

Để bao gồm tất cả các thư mục con trong một tìm kiếm, hẫy thêm -r vào lệnh grep.

grep -r phoenix *
lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 29

Lệnh này in các kết quả phù hợp cho tất cả các file trong thư mục hiện tại, thư mục con và đường dẫn chính xác với tên file. Trong ví dụ dưới đây, chúng tôi đã thêm -w để hiển thị toàn bộ các từ, nhưng output nó sẽ giống nhau.

Tìm kiếm grep ngược

Bạn có thể sử dụng grep để in tất cả các dòng không khớp với một mẫu ký tự cụ thể. Để tìm kiếm grep ngược, hãy thêm -v vào lệnh grep.

Để loại trừ tất cả các dòng có chứa phoenix, hãy nhập:

grep -v phoenix sample

Thiết bị đầu cuối in ra tất cả các dòng không chứa từ được sử dụng làm tiêu chí tìm kiếm. Sử dụng -i để bỏ qua chữ hoa chữ thường để loại trừ hoàn toàn từ được sử dụng cho tìm kiếm này:

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 30

Dùng lệnh grep trong Linux để hiển thị các dòng khớp chính xác với chuỗi tìm kiếm

Lệnh grep in toàn bộ dòng khi nó tìm thấy kết quả trùng khớp với một file. Để chỉ in những dòng hoàn toàn khớp với chuỗi tìm kiếm, hãy thêm tùy chọn -x.

grep -x “phoenix number3” *

Output chỉ hiển thị các dòng khớp chính xác. Nếu có bất kỳ từ hoặc ký tự nào khác trong cùng một dòng, grep sẽ không đưa nó vào kết quả tìm kiếm. Đừng quên sử dụng dấu ngoặc kép bất cứ khi nào có khoảng trắng hoặc ký hiệu trong mẫu tìm kiếm.

Dưới đây là so sánh các kết quả không có và với -x trong lệnh của chúng tôi:

lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 31

Dùng lệnh grep trong Linux để liệt kê tên của các file phù hợp

Đôi khi, bạn chỉ cần xem tên của các file chứa một từ hoặc chuỗi ký tự và loại từ các dòng thực tế. Để chỉ in các tên file phù hợp với tìm kiếm của bạn, hãy sử dụng -l:

grep -l phoenix *
lenh-grep-trong-linux
Tìm hiểu cách dùng lệnh Grep trong Linux 32

Kết quả hiển thị tên tệp chính xác có chứa Phoenix trong thư mục hiện tại nhưng không in ra các dòng có từ tương ứng:

Xin nhắc lại, hãy sử dụng tìm kiếm đệ quy -r để bao gồm tất cả các thư mục con trong tím kiếm của bạn.

Dùng lệnh grep trong Linux để hiển thị số dòng trước hoặc sau chuỗi tím kiếm

Đôi khi bạn cần thêm nội dung trong kết quả tìm kiếm để quyết định nội dung nào phù hợp nhất.

  • Sử dụng -A và một số dòng để hiển thị nếu phù hợp: lệnh grep – A sẽ in ra ba dòng sau chuỗi tìm kiếm.
  • Sử dụng -B và một số dòng để hiển thị nếu phù hợp: lệnh grep – B sẽ in ra hai dòng này trước chuỗi tìm kiếm.
  • Sử dụng -C và một số dòng để hiển thị nếu phù hợp: lệnh grep – C sẽ in ra hai dòng trước và sau trước chuỗi tìm kiếm.

Dùng lệnh grep trong Linux để giới hạn đầu ra grep ở một số dòng cố định

Các file riêng lẻ, chẳng hạn như file log, có thể chứa nhiều kết quả phù hợp cho các mẫu tìm kiếm grep. Giới hạn số dòng trong output của lệnh grep bằng cách thêm tùy chọn -m vào một số lệnh.

grep -m2 Phoenix sample

Trong trường hợp này, thiết bị đầu cuối in ra hai kết quả khớp đầu tiên mà nó tìm thấy trong file sample.

Nếu bạn không chỉ định một file và tìm kiếm tất cả các file trong một thư mục, output sẽ in ra hai kết quả đầu tiên từ mọi file cùng với tên file chứa các kết quả phù hợp.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG