Tìm kiếm trong file: grep, fgrep, egrep

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 50 - 51)

4. Lọc (Filters)

4.1.3. Tìm kiếm trong file: grep, fgrep, egrep

Lệnh lọc grep, fgrep egrep giúp tìm kiếm nội dung trong file theo một mẫu tìm kiếm (pattern). Kết quả tìm được sẽ là các dòng chứa mẫu cần tìm. Mẫu tìm kiếm có thể là một xâu ký tựđơn giản hoặc thậm chí là một biểu thức chính quy có những ký tựđại diện. ƒ Lệnh grep

Lệnh grep có hai đối số, thứ nhất là mẫu tìm kiếm và thứ hai là tên các file cần tìm kiếm. Ví dụ:

$ grep Vezy datafile

Vezy good Vezy fine

Nếu mẫu tìm có nhiều từ thì phải đặt trong dấu ngoặc kép (“ ”).

Bạn có thể thêm các tuỳ chọn trong grepđể tạo các đầu ra khác nhau. Ví dụ:

-i: tìm kiếm không phân biệt chữ hoa chữ thường

-c: cho biết tổng số dòng xuất hiện mẫu

-n: hiển thị số thứ tự của dòng xuất hiện mẫu

-v: hiển thị các dòng không xuất hiện mẫu

Lệnh grep cũng cho phép tìm kiếm với mẫu là các biểu thức chính quy. ƒ Lệnh fgrep

Lệnh fgrep thực hiện tìm kiếm nhanh hơn grep và có thể tìm kiếm cùng lúc với nhiều mẫu khác nhau. Tuy nhiên nó không tìm kiếm được với mẫu là biểu thức chính quy.

Mẫu có thểđược nhập trên dòng lệnh hay đọc ra từ một file. Nếu các mẫu được đưa vào từ dòng lệnh thì mỗi mẫu phải nằm trên một dòng.

Ví dụ:

$ fgrep “Vezy \ > Hello” datafile

Hello how are you Vezy good

Vezy fine

Nếu mẫu được lấy ra từ file thì mỗi mẫu nằm trên một dòng trong file. Và ta cần thêm tuỳ chọn –f tiếp sau là tên file chứa mẫu.

Ví dụ:

$ cat > filetk Vezy

Hello ^D

$ fgrep –f filetk datafile

Hello how are you Vezy good

Vezy fine ƒ Lệnh egrep

Lệnh egrep kết hợp các khả năng của grepfgrep. Nó có thể tìm kiếm trên nhiều mẫu, với mẫu có thể là biểu thức chính quy. Ngoài ra egrep còn cho phép sử dụng các toán tử logic để thể hiện điều kiện tìm kiếm phức tạp. Ta sẽ nói đến egrep trong nội dung tiếp theo.

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 50 - 51)