12/08/2018, 14:04

Tìm hiểu về command grep

Với người dùng hệ điều hành Linux thì command grep không phải quá xa lạ. Với grep có thể giúp chúng ta tìm kiếm nhanh hơn và chính xác hơn, dễ tùy biến option search .Hôm nay mình xin chia sẻ một số option của grep 1.Grep? 「grep」 là command hiển thị line chứa chuỗi kí tự trong file .Có thể ...

Với người dùng hệ điều hành Linux thì command grep không phải quá xa lạ. Với grep có thể giúp chúng ta tìm kiếm nhanh hơn và chính xác hơn, dễ tùy biến option search .Hôm nay mình xin chia sẻ một số option của grep

1.Grep?

「grep」 là command hiển thị line chứa chuỗi kí tự trong file .Có thể chỉ định nhiều file hoặc nhiều đường dẫn của đối tượng search . Có thể thay file hoặc đường dẫn bằng kết quả output từ command khác.Đây là trường hợp hay được sử dụng khi dùng với grep

2.Các option của grep

*Option liên quan đến pattern search

report1.png

*Option liên quan đến hiển thị

r2.png

3.Chỉ xuất ra những line chứa kết quả search

Từ kết quả của câu lệnh dmesge(command hiển thị message system khi khởi động),trong trường hợp muốn hiển thị các line mà chỉ có các cụm video thì ta dùng lệnh thì ta dùng câu lệnh 「dmesg | grep video」

r3.png

4. Search theo từng chữ

Ở phần search bên trên, search [video] ra cả kết quả là 「uvcvideo」nhưng trong trường hợp chỉ muốn hiển thị mỗi chữ [video] thi ta dùng thêm option -w, kết quả search sẽ như bên dưới

r4.png

Command
grep -w
dmesg | grep -w video
(chỉ hiển thị line chứa cụm từ 「video」 từ kết quản thực thi của lệnh dmesg)

grep -w video file_text
(chỉ hiển thị line chứa cụm từ 「video」 từ file text )

5.Hiển thị line trước và sau line chứa từ muốn search

Khi search chuỗi ký tự, có trường hợp ta muốn hiển thị các line đằng trước or sau line chứa kết quả match để dễ hiểu hơn thì ta dùng thêm option -number_line Trong đó number_line là số line hiển thị trước và sau Ví dụ: trong trường hợp muốn hiển thị hai dòng trước và sau thì chỉ định bởi số 2 như hình bên dưới.

r5.png

Command

dmesg | grep -w -2 video
(hiển thị bao gồm 2 line trước sau line chứa kí tự (-w option) video từ kết quả thực thi của câu lệnh dmesg)
grep -2 [chuỗi kí tự search] filetext
(seach chuỗi kí tự từ file text, hiển thị cả 2 line kết quả trước đó )
Có thể chỉ định line đằng sau hay line trước line kết quả bằng 2 option sau
「-B(--before-context=)」
「-A(--after-context=)」
Command
grep -B 2  text file text
(search kí tự từ file texxt , hiển thị cả 2 line trước line kết quả)
grep -A 2 text file text
(search kí tự từ file text , hiển thị cả 2 line sau line kết quả)

6.Search nhiều kí tự (sử dụng option -e)

Trong trường hợp muốn search nhiều kí tự , ta sẽ thêm kí option -e theo format như sau :
grep -e text 1 -e text2 -e text3 file text
Với option -e thì ta cũng có thể thêm các option khác đi kèm.Ví du muốn search kí tự mà không phân biệt kí tự hoa thường thì ta thêm option -i theo format bên dưới
grep -i -e text1 -e text2

r6.png

7.Search nhiều kí tự(sử dụng biểu thức chính quy)

Có 2 cách để search nhiều kí tự. Một là sử dụng option -E hoặc gắn kèm dấu 「」 trước 「|」.Dù dùng cách nào thì cũng gắn kèm dầu nháy cho chuỗi text muốn search
Command
grep "text1|text2|text3" file text
grep -E "text1|text2|text3" file text

r7.png

8.Search từ chuỗi kí tự trong file bất kì

Trong trường hợp muốn search list kí tự trong file ta dùng thêm option -f với format như sau
Command
grep -f list text file text
command | grep -f list kí tự search
Ví dụ : ta tạo file wordlist với nội dung là 2 từ khóa network và video, khi search kết quả sẽ như sau

r8.png

9.Muốn search line chứa kí tự bất kì

Ta có thể chỉ định thứ tự search theo thứ tự của biểu thức chính quy [text 1, text 2, text 3] như hình bên dưới. Cụ thể ta có thể đưa dấu 「.*」 vào giữa các kí tự muốn search
Command
「grep "text1.*text2"」

r8.png

Nguồn tham khảo

http://www.atmarkit.co.jp/ait/articles/1604/15/news019.html

0