Hướng Dẫn Cách Dùng Lệnh Grep Trong Linux để Tìm Kiếm - Vietnix

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.

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

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:

  • default iconTìm hiểu lệnh make trong Linux và 5 ví dụ cụ thể về cách sử dụng
  • default iconTìm hiểu cách sử dụng lệnh sort trong Linux thông qua 16 ví dụ cụ thể
  • default iconCách sử dụng và nhận trợ giúp bằng lệnh help trong Linux

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

10 ví dụ cụ thể về lệnh grep trong Linux

  1. Ví dụ 1: Tìm kiếm chuỗi không phân biệt chữ hoa/thường bằng lệnh grep
  2. Ví dụ 2: Hiển thị số dòng chứa chuỗi kết quả bằng grep trong Linux
  3. Ví dụ 3: Tìm kiếm bên trong nhiều file bằng lệnh grep trong Linux
  4. Ví dụ 4: Tìm toàn bộ từ bằng lệnh grep trong Linux
  5. Ví dụ 5: Tìm kiếm bên trong directory con bằng lệnh grep
  6. Ví dụ 6: Tìm kiếm grep ngược
  7. Ví dụ 7: Tìm kiếm bên trong một file bằng lệnh grep trong Linux
  8. Ví dụ 8: Tìm kiếm tất cả các file trong một directory bằng lệnh grep
  9. 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
  10. Ví dụ 10: Tìm kiếm nhiều từ bên trong một file bằng lệnh grep trong Linux

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 text1.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 this text1.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ữ this đã bỏ qua phân biệt chữ hoa/thường
Output hiển thị chữ this đã 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ừ “ this” trong một file có tên text1.txt :

Bước 1: Mở Terminal

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

grep -n this text1.txt

Output: Tất cả các dòng đều hiển thị đều chứa từ this 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ừ I bên trong 2 file có tên là text1.txt & text2.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 I text1.txt text2.txt

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

Tất cả các từ I đã được tìm thấy trong 2 file
Tất cả các từ I đã đượ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ừ I bên trong directory home:

Bước 1: Mở Terminal

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

grep -w I *

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

Tất cả từ I đã được tìm thấy trong directory
Tất cả từ I đã đượ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ừ I trong directory home 

Bước 1: Mở Terminal

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

grep -r I *

Output: Hiển thị tất cả các dòng có chứa từ I 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ừ I đã được hiển thị
Tất cả các dòng có chứa từ I đã đượ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ừ I vào file có tên text1.txt:

Bước 1: Mở Terminal

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

grep -v I text1.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ừ I
Tất cả các dòng đều được hiển thị ngoại trừ dòng chứa từ I

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ừ I trong text2.txt:

Bước 1: Mở Terminal

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

grep I text2.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ừ I đã được tìm kiểm và hiển thị
Các từ I đã đượ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ừ I 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 I *

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ừ I đã được hiển thị
Tất cả các dòng đều có chứa từ I đã đượ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ừ I trong text1.txt:

Bước 1: Mở Terminal

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

grep -B2 I text1.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 I text1.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 I text1.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ừ I & and bên trong text1.txt.

Bước 1: Mở Terminal

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

grep -e I -e and text1.txt

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

Hai từ I và and hiển thị trùng khớp bên trong file
Hai từ I và and 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!

Từ khóa » Cách Dùng Lệnh Grep