Hướng dẫn sử dụng lệnh grep cơ bản trên Linux
Giới thiệu
grep là một lệnh Linux và Unix được sử dụng để tìm kiếm văn bản và chuỗi trong một tệp nhất định. Chúng ta có thể chỉnh định một hoặc nhiều file cùng lúc, hoặc có thể nhận kết quả từ đầu ra của các lệnh khác.
Cú pháp lệnh grep
grep [tùy chọn] <chuỗi tìm kiếm> <filename>
Các tùy chọn lệnh grep.
Tùy chọn | Mô tả |
---|---|
-v |
Hiển thị tất cả các dòng không khớp kết quả tìm kiếm |
-c |
Hiển thị số lượng các dòng khớp kết quả tìm kiếm |
-n |
Hiện thị số dòng khớp kết quả tìm kiếm |
-i |
Khớp cả chữ hoa và thường |
-w |
Buộc MẪU chỉ khớp với toàn bộ các từ |
-l |
Hiển thị tên của file khớp kết quả tìm kiếm |
-L |
Hiển thị tên của file không khớp kết quả tìm kiếm |
-h |
Không có tiền tố tên file trong đầu ra |
-H |
In tiền tố tên file trong đầu ra |
-r |
Thư mục tìm kiếm đệ quy |
-R |
Giống như -r nhưng theo dõi tất cả các liên kết tượng trưng |
--color |
Hiển thị mẫu phù hợp với màu |
-m |
Giới hạn số dòng đầu ra khớp kết quả tìm kiếm |
-o |
Chỉ hiển thị các phần khớp kết quả tìm kiếm |
-B |
Hiển thị số dòng sau dòng khớp kết quả tìm kiếm |
-A |
Hiển thị số dòng trước dòng khớp kết quả tìm kiếm |
-C |
Hiển thị số dòng xung quanh dòng khớp kết quả tìm kiếm |
Ví dụ lệnh grep
Tìm kiếm một chuỗi trong file.
Chúng ta có nội dung file 123host.txt
như sau:
Chúng ta cần tìm kiếm chuỗi hosting
trong file 123host.txt
chúng ta dùng lệnh như sau:
Hiển thị các dòng không khớp với chuỗi cần tìm.
Để hiển thị các dòng không khớp với giá trị tìm kiếm chúng ta dùng tùy chọn -v
.
Hiển thị số lượng các khớp kết quả tìm kiếm.
Để hiển thị số lượng các khớp kết quả tìm kiếm chúng ta dùng tùy chọn -c
như sau:
Hiện thị số dòng của chuỗi cần tìm.
Để hiển thị số dòng của chuỗi cần tìm kiếm chúng ta dùng tùy chọn -n
như sau:
Tìm chuỗi khớp cả chữ hoa và thường.
Để tìm chuỗi ký tự không phân biệt chữ hoa chữ thường chúng ta dùng tùy chọn -i
như sau:
Tìm chuỗi chính xác.
Ví dụ: chúng ta tìm "no" thì "not", "nothing" cũng có chứa chuỗi no nên cũng sẽ trả về kết qủa. Do đó, nếu bạn muốn tìm chính xác từ mong muốn thì có thể dùng tùy chọn -w
.
Tìm kiếm tên tập tin.
Chúng ta có thể dùng tùy chọn -l
để liệt kê các tập tin phù hợp với tìm kiếm.
Chúng ta có thể dùng tùy chọn -L
để liệt kê các tập tin không phù hợp với tìm kiếm.
Chúng ta có thể dùng tùy chọn -H
để thêm tiền tố tên tệp trong đầu ra.
Chúng ta có thể dùng tùy chọn -h
để bỏ tiền tố tên tệp trong đầu ra.
Tìm kiếm chuỗi ký tự trong tất cả các file trong thư mục.
Để tìm kiếm chuỗi ký tự 123host
trong tất cả các file trong một thư mục/var/www/123host-demo/
chúng ta dùng tham số -r
hoặc -R
như sau:
Đầu ra màu.
Đánh dấu các chuỗi tìm kiếm, số dòng, tên tệp,... bằng các màu khác nhau. Phụ thuộc vào hỗ trợ màu sắc trong thiết bị đang được sử dụng.
Tùy chọn --color
:
auto: khi đầu ra được chuyển hướng (lệnh khác, tệp, v.v.) thông tin màu sẽ không được thông qua.
always: khi đầu ra được chuyển hướng (lệnh khác, tệp, v.v.) thông tin màu cũng sẽ được chuyển.
never: xác định rõ ràng không có đánh dấu.
Sự khác nhau giữa auto và aways:
Hiển thị thêm dòng trước, sau, xung quanh dòng khớp kết quả tìm kiếm.
Chúng ta có thể lựa chọn tìm kiếm hiển thị ra các dòng trước, sau hoặc xung quanh dòng khớp kết quả tìm kiếm.
grep -<A, B hoặc C> <n> <chuỗi tìm kiếm> <filename>
- A : Hiển thị dòng sau dòng khớp kết quả tìm kiếm
- B : Hiển thị dòng trước dòng khớp kết quả tìm kiếm
- C : Hiển thị dòng xung quanh dòng khớp kết quả tìm kiếm
- n : Là số dòng chỉ định xem hiển thị trước, sau hay xung quang dòng khớp kết quả tìm kiếm
Ví dụ hiển thị sau kết quả tìm kiếm 3 dòng.
Ví dụ hiển thị trước kết quả tìm kiếm 3 dòng.
Ví dụ hiển thị xung quanh kết quả tìm kiếm 2 dòng.
Ngoài ra chúng ta cũng có thể kết hợp sử nhiều tùy chọn lệnh grep
để sử dụng như sau:
Ở ví dụ chúng ta hiển thị thêm 3 dòng trước dòng khớp kết quả, không phân biệt chữ hoa chữ thường và tìm chính xác.
Tổng kết
Chúng ta đã kết thúc bài hướng dẫn sử dụng lệnh grep
trên Linux. Hy vọng qua bài nãy sẽ giúp các bạn hiểu và sử dụng được lệnh grep
một cách dễ dàng trên Linux.
Tính năng đang được phát triển