Những điều Tâm đắc Nhất Khi Sử Dụng Lệnh GREP
Có thể bạn quan tâm
Grep (Global Regular Expression Print) là một công cụ dòng lệnh Linux/Unix được sử dụng để tìm kiếm một chuỗi ký tự trong một tệp được chỉ định. Khi tìm thấy kết quả khớp, nó sẽ in dòng kết quả. Lệnh greprất tiện lợi khi tìm kiếm thông qua các tệp nhật ký lớn. Ở bài viết này, mình sẽ giới thiệu những tùy chọn hay dùng và hữu ích nhất của grep command.
Cách sử dụng:
Cú pháp: grep [tuỳ chọn] <file>
Sau đây mình sẽ có những ví dụ để các bạn dễ hình dung và dễ hiểu hơn về lệnh grep
Mình có 2 file voivang.txt và song.txt
1: Tìm một chuỗi trong một file
VD: Tìm từ “tat nang” trên file voivang.txt
2: Tìm kiếm chuỗi trên nhiều file
VD: Tìm từ “gio” trên 2 file voivang.txt và song.txt
3: Tìm kiếm không phân biệt hoa thường, sử dụng tùy chọn -i
VD: Như các bạn đã thấy, trên 2 file text có cả thừ viết hoa và viết thường. Để tìm kiếm mà không phân biệt hoa thường ta có thể sử dụng tùy chọn -i
Ở đây, mình tìm từ “toi” là chữ thường thì sẽ không ra kết quả, nhưng nếu sử dụng tùy chọn -i, thì kết quả sẽ xuất hiện với từ “Toi”
4: Tìm kiếm ngược, sử dụng tùy chọn -v
VD: Để tìm tất cả những dòng không chứa từ “nang”
5: Hiển thị số dòng, số lượng, giới hạn số dòng đầu ra
Ứng với các tùy chọn sau:
- -n: Hiện thị số thứ tự của dòng và dòng chứa từ cần tìm
- -c: Đếm số dòng khớp với kí tự cần tìm
- -m[chỉ số cần giới hạn]: Giới hạn số lượng dòng khớp
- Với tùy chọn -n, kết quả hiển thị bao gồm thứ tự dòng và dòng chứa từ “nhat”.
- Với tùy chọn -c, kết quả hiển thị 2 vì có 2 dòng chứa từ “Toi”.
- Tùy chọn cuối, chúng ta có thể tùy chỉnh số dòng được hiển thị theo ý muốn của mình.
6: Tìm kiếm nhiều chuỗi
Có 3 cú pháp tìm tương đương nhau:
- Cách 1: grep -e "word1" -e "word2" <file>
- Cách 2: grep "word1\|word2" <file> # \ để phân biệt word1 với word2
- Cách 3: egrep "word1|word2" <file>
7: Tìm kiếm tên tệp
- -l: để có được các tập tin phù hợp với tìm kiếm
- -L: để có được các tập tin không phù hợp với tìm kiếm
- -h: hiện thị không với tên file (khi chỉ định nhiều file)
- -H: hiển thị cùng với tên file
7.1: So sánh giữa 2 tùy chọn -l và -L
- Tùy chọn -l sẽ ra kết quả là những tên file có chứa từ “gio”
- Tùy chọn -L sẽ ra kết quả là những tên file không chứa từ “gio”
7.2: So sánh 2 tùy chọn -h và -H
- Tùy chọn -h sẽ cho kết quả những dòng chứa từ “gio” mà không kèm với tên file
- Còn với tùy chọn -H kết quả sẽ bao gồm tên file và dòng chứa từ “gio”
8: Hiển thị thêm dòng trước, sau, xung quanh dòng chứa kết qủa cần tìm.
grep -<A, B hoặc C> <n> "chuoi" <file>
Trong đó:
- A : hiển thị dòng sau dòng khớp với kí tự cần tìm
- B : hiển thị dòng trước dòng khớp với kí tự cần tìm
- C : hiển thị dòng xung quanh dòng khớp với kí tự cần tìm
- n : là số tự nhiên chỉ định xem hiển thị trước, sau hay xung quanh bao nhiêu dòng
VD:
9: Tìm chính xác với -w
VD: Mình có file vqmanh.txt
- Khi bạn tìm kiếm bình thường với grep, kết quả sẽ hiển thị tất cả những dòng có chứa từ vqmanh kể cả vqmanh99.
- Với tùy chọn -w, kết quả sẽ tìm chính xác chỉ những dòng có chứa từ vqmanh.
10: Tìm tất cả các file trên cả thư mục con và thư mục cha với tùy chọn -R
- Thêm tùy chọn này các bạn có thể tìm trên thư mục con lẫn thư mục cha khi không biết chính xác file nào chứa chuỗi cần tìm. Các bạn có thể xem cụ thể hơn ở phần 11.2
11: Mở rộng nâng cao, kết hợp các tùy chọn
11.1 Tìm kiếm dựa trên output của lệnh trước làm input của lệnh sau sử dụng “|“
11.2 Tìm chuỗi, hiển thị số dòng, tên file
VD: Tìm “error” hiển thị số dòng, tên file mà chưa biết chính xác file nào: grep -Hin 'error' /var/log/httpd/*
VD: Sử dụng tùy chọn -Rin để tìm kiếm tất cả những file có trong thư mục, kể cả thư mục con.
grep -Rin 'error' /var/log/ # VD này sẽ tìm kiếm tất cả những file có chứa “error” và hiển thị tên file, số dòng, kể cả thư mục con năm trong thư mục log.
11.3 Đọc file loại bỏ comment, dòng trống
VD: Khi một file cấu hình có sử dụng rất nhiều comment và các dòng trống. Mà bạn chỉ muốn đọc các cấu hình một cách nhanh và ngắn gọn sử dụng:
egrep -v "^#|^*#|^$" tên_file
- ^# – Những dòng bắt đầu bằng #
- ^*# – Những dòng bắt đầu bằng # kể cả khoảng trống trước nó
- ^$ – Những dòng trống
Hy vọng bài viết này sẽ hữu ích cho các bạn mới bắt đầu tìm hiểu về lệnh grep.
Từ khóa » Cách Dùng Lệnh Grep
-
Hướng Dẫn Cách Dùng Lệnh Grep Trong Linux để Tìm Kiếm - Vietnix
-
Tìm Hiểu Về Lệnh GREP Trong Linux - Viblo
-
10 Ví Dụ Về Lệnh Grep Trong Linux
-
Grep Command Trong Linux - Cách Sử Dụng Lệnh Grep - Hostinger
-
Lệnh Grep Toàn Tập Image Lệnh Grep Toàn Tập
-
Top 10 Cách Dùng Lệnh Grep Trong Linux Hay Nhất - Freetuts
-
10 Ví Dụ Về Sử Dụng Lệnh Grep Trên Linux - Knowledge Base
-
Hướng Dẫn Sử Dụng Câu Lệnh Grep Trong Linux - HOSTVN Blog
-
Hướng Dẫn Sử Dụng Lệnh Grep Trong Linux - HOSTVN
-
Cách Sử Dụng Lệnh Grep Và Các Ví Dụ Tree Linux
-
Cách Sử Dụng Lệnh Grep Trong Linux - VinaSupport
-
Grep Là Gì? Cách Sử Dụng Lệnh Grep Trong Linux/UNIX | BKHOST
-
Hướng Dẫn Sử Dụng Lệnh Grep Trong Linux Qua 10 Ví Dụ - Blog KDATA
-
Hướng Dẫn Thao Tác Với Lệnh Grep - VinaHost