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ọn | Mô Tả |
-i | Hiển thị các dòng có tiêu chí phù hợp trong khi bỏ qua chữ hoa/thường. |
-l | Chỉ hiển thị tên file |
-n | Hiển thị các dòng có tiêu chí và số dòng phù hợp. |
-c | Chỉ hiển thị số dòng khớp với mẫu |
-v | Hiển thị các dòng không khớp với tiêu chí (tìm kiếm ngược) |
-w | Hiển thị toàn bộ các từ khớp. |
-A n | Hiển thị n dòng sau khi khớp. |
-B n | Hiển thị n dòng trước các kết quả khớp. |
-C n | Hiể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
- Ví dụ 1: Tìm kiếm chuỗi không phân biệt chữ hoa/thường bằng lệnh grep
- Ví dụ 2: Hiển thị số dòng chứa chuỗi kết quả bằng grep trong Linux
- Ví dụ 3: Tìm kiếm bên trong nhiều file bằng lệnh grep trong Linux
- Ví dụ 4: Tìm toàn bộ từ bằng lệnh grep trong Linux
- Ví dụ 5: Tìm kiếm bên trong directory con bằng lệnh grep
- Ví dụ 6: Tìm kiếm grep ngược
- Ví dụ 7: Tìm kiếm bên trong một file bằng lệnh grep trong Linux
- Ví dụ 8: Tìm kiếm tất cả các file trong một directory bằng lệnh grep
- 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
- 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.
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ị.
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.
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.
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.
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.
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.
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 .
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
Bước 3: Bạn nhập tiếp lệnh sau và nhấn Enter:
grep -A2 I text1.txt
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.
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.
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!