NỘI DUNG

20/08/2024
Lượt xem

Tìm hiểu cách dùng lệnh grep trong Linux thông qua 10 ví dụ cụ thể

20/08/2024
[vnx_reading_time rule="220"]phút đọc[/vnx_reading_time]
Lượt xem
Ngày đăng:20/08/2024
Cập nhật cuối:21/08/2024
Lượt xem

Đánh giá

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

Lệnh grep trong Linux là một công cụ được 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. Hãy cùng Vietnix, tìm hiểu về lệnh grep và 10 ví dụ về cách sử dụng.

Lệnh grep trong Linux là gì?

Lệnh grep trong Linux (viết tắt Global Regular Expression Print) là một công cụ được sử dụng để tìm kiếm một chuỗi cụ thể hoặc một biểu thức chính quy trong một hay nhiều file văn bản và hiển thị các dòng chứa chuỗi tìm kiếm.

Cú pháp của lệnh grep trong Linux rất đơn giản:

grep [OPTION…] PATTERNS [FILE…]

Trong đó: 

  • pattern – chuỗi/ từ khóa cần tìm
  • [FILE] – file thực hiện tìm kiếm

Mọi người cũng xem:

9 tùy chọn của lệnh grep trong Linux

Các tùy chọn hữu ích của lệnh grep Linux:

Tùy chọnMô Tả
-iHiển thị các dòng có tiêu chí phù hợp trong khi bỏ qua chữ hoa/thường.
-lChỉ hiển thị tên file
-nHiển thị các dòng có tiêu chí và số dòng phù hợp.
-cChỉ hiển thị số dòng khớp với mẫu
-vHiển thị các dòng không khớp với tiêu chí (tìm kiếm ngược)
-wHiển thị toàn bộ các từ khớp.
-A nHiển thị n dòng sau khi khớp.
-B nHiển thị n dòng trước các kết quả khớp.
-C nHiển thị n dòng trước và sau các kết quả khớp

Ví dụ 1: Tìm kiếm chuỗi không phân biệt chữ hoa/thường bằng lệnh grep

Để bỏ qua phân biệt chữ viết hoa hay thường, bạn sử dụng tùy chọn -i. Trong ví dụ này, sẽ sử dụng file2.txt, làm theo 2 bước sau:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -i Linux file2.txt

Output: Tất cả các dòng đều được hiển thị chứa từ Linux và đã bỏ qua phân biệt chữ hoa/ chữ thường.

Output hiển thị chữ Linux đã bỏ qua phân biệt chữ hoa/thường
Output hiển thị chữ Linux đã bỏ qua phân biệt chữ hoa/thường

Ví dụ 2: Hiển thị số dòng chứa chuỗi kết quả bằng grep trong Linux

Bạn có thể sử dụng tùy chọn -n để hiển thị thứ tự dòng chứa chuỗi kết quả. Trong ví dụ này, sẽ tìm kiếm từ “ Linux” trong một file có tên file1.txt :

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -n Linux file1.txt

Output: Tất cả các dòng đều hiển thị đều chứa từ Linux và số dòng của chúng cũng được hiển thị.

Số dòng chứa chuỗi đã được hiển thị
Số dòng chứa chuỗi đã được hiển thị

Ví dụ 3: Tìm kiếm bên trong nhiều file bằng lệnh grep trong Linux

Để tìm kiếm bên trong nhiều file bằng lệnh grep, bạn chỉ cần liệt kê tên các file đó, cách nhau bởi dấu cách. Ví dụ, sẽ tìm kiếm từ Linux bên trong 2 file có tên là file1.txt & file2.txt và thực hiện theo 2 bước sau:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep Linux file1.txt file2.txt

Output: Hiển thị tất cả các dòng đều được hiển thị có chứa từ “ Linux” phù hợp bên trong cả hai file.

Tất cả các từ Linux đã được tìm tháy trong 2 file
Tất cả các từ Linux đã được tìm tháy trong 2 file

Ví dụ 4: Tìm toàn bộ từ bằng lệnh grep trong Linux

Để tìm kiếm toàn bộ từ khóa trong các file, bạn có thể sử dụng tùy chọn -w. Trong ví dụ này, sẽ tìm kiếm toàn bộ từ Linux bên trong directory home:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -w Linux *

Output: Tất cả các dòng hiển thị có chứa toàn bộ từ Linux và không làm nổi bật từ LinuxSimply vì ở đây Linux là một chuỗi con của từ này.

Tất cả từ Linux đã được tìm thấy trong directory
Tất cả từ Linux đã được tìm thấy trong directory

Ví dụ 5: Tìm kiếm bên trong directory con bằng lệnh grep 

Để tìm một từ hoặc ký tự trong directory con, bạn có thể sử dụng tùy chọn -r. Ở ví dụ này, sẽ tìm kiếm từ Linux trong directory home 

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -r Linux *

Output: Hiển thị tất cả các dòng có chứa từ Linux trong trong thư mục con và tên đường dẫn cũng được hiển thị ở đây.

Tất cả các dòng có chứa từ Linux đã được hiển thị
Tất cả các dòng có chứa từ Linux đã được hiển thị

Ví dụ 6: Tìm kiếm grep ngược

Để tìm kiếm bên trong một file mà dòng chứa từ hoặc ký tự đã cho sẽ không được hiển thị, bạn sử dụng tùy chọn -v. Ví dụ, sẽ đưa từ Linux vào file có tên file1.txt:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -v Linux file1.txt

Output: Bạn có thể thấy tất cả các dòng đều được hiện thị ngoại trừ các dòng có chứa từ Linux tương ứng.

Tất cả các dòng đều được hiển thị ngoại trừ dòng chứa từ Linux
Tất cả các dòng đều được hiển thị ngoại trừ dòng chứa từ Linux

Ví dụ 7: Tìm kiếm bên trong một file bằng lệnh grep trong Linux

Với lệnh grep, bạn có thể tìm kiếm một từ hoặc ký tự cụ thể bên trong một file. Trong ví dụ này, sẽ tìm kiếm từ Linux trong file1.txt:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep Linux file1.txt

Output: Tất cả các dòng trong file1.txt đều được hiển thị và có chứa từ Linux tương ứng.

Các từ Linux đã được tìm kiểm và hiển thị
Các từ Linux đã được tìm kiểm và hiển thị

Ví dụ 8: Tìm kiếm tất cả các file trong một directory bằng lệnh grep

Để tìm kiếm tất cả các file trong trong một directory, bạn sử dụng lệnh grep. Ở ví dụ này, sẽ tìm từ Linux trong tất cả các file trong directory desktop bằng dấu (*)

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep Linux *

Output: Tất cả các dòng đều được hiển thị và có chứa từ Linux tương ứng bên trong các file của thư mục Desktop .

Tất cả các dòng đều có chứa từ Linux đã được hiển thị
Tất cả các dòng đều có chứa từ Linux đã được hiển thị

Ví dụ 9: Hiển thị số dòng trước hoặc sau chuỗi tìm kiếm bằng lệnh grep

Bạn có thể tìm kiếm từ hoặc ký tự cụ thể trong một file và hiển thị các dòng trước, sau hoặc cả hai bằng lệnh grep. Ở ví dụ này, sẽ tìm kiếm từ Linux trong file1.txt:

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -B2 Linux file1.txt
Output lệnh thứ nhất
Output lệnh thứ nhất

Bước 3: Bạn nhập tiếp lệnh sau và nhấn Enter:

grep -A2 Linux file1.txt
Output lệnh thứ 2
Output lệnh thứ 2

Bước 4: Cuối cùng, nhấn lệnh sau và nhấn Enter:

grep -C2 Linux file1.txt

Output: Như bạn thấy 2 dòng được hiển thị trước dòng chữ tương ứng với lệnh đầu tiên, 2 dòng sau từ Linux tương ứng với lệnh thứ 2. Cuối cùng, 2 dòng trước và sau tương ứng với lệnh cuối cùng.

Output cuối cùng sau khi thực hiện các lệnh
Output cuối cùng sau khi thực hiện các lệnh

Ví dụ 10: Tìm kiếm nhiều từ bên trong một file bằng lệnh grep trong Linux

Để tìm kiếm nhiều từ bên trong một file, bạn sử dụng tùy chọn -e. Ở ví dụ này, sẽ tìm kiếm các từ Linux & love bên trong file2.txt.

Bước 1: Mở Terminal

Bước 2: Nhập lệnh sau và nhấn Enter:

grep -e Linux -e love file2.txt

Output: Tất cả các dòng đều được hiển thị và có chứa cả hai từ Linux và love trùng khớp bên trong file.

Hai từ Linux và love hiển thị trùng khớp bên trong file
Hai từ Linux và love hiển thị trùng khớp bên trong file

Câu hỏi thường gặp

Cách sử dụng biểu thức chính quy với lệnh grep?

Biểu thức chính quy là một công cụ mạnh mẽ để tạo các mẫu tìm kiếm phức tạp. Sử dụng dấu \ để thoát các ký tự đặc biệt trong biểu thức chính quy. Ví dụ: grep “\d+” file.txt để tìm các số.

Có thể sử dụng lệnh grep để tạo báo cáo thống kê không?

Kết hợp lệnh grep với các công cụ như wc, sort, uniq để tạo các báo cáo thống kê đơn giản. Ví dụ: grep -c “error” *.log để đếm số lượng lỗi trong các tệp log.

Có thể sử dụng lệnh grep để thay thế nội dung trong file không?

Không thể sử dụng trực tiếp lệnh grep để thay thế nội dung. Tuy nhiên, kết hợp với các công cụ khác như sed hoặc awk, bạn có thể thực hiện việc này.

Lời kết

Trong bài viết trên, bạn đã tìm hiểu chi tiết về lệnh grep trong Linux và cách sử dụng. Hy vọng những ví dụ cụ thể này sẽ giúp bạn dễ dàng tìm kiếm và hiển thị chuỗi trên hệ thống Linux một cách hiệu quả. Nếu bạn có bất kỳ thắc mắc nào, đừng ngần ngại để lại bình luận bên dưới để Vietnix giải đáp cho bạn!

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu í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

0 0 đánh giá
Article Rating
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
khuyến mãi tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY

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

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

Thất vọng

Chưa hữu ích

Bình thường

Hữu ích

Rất hữu ích