Saturday, 22 October 2011

Tìm kiếm string với grep

grep là một công cụ rất quan trọng trong linux. Nó giúp lọc ra thông tin bạn cần trong hàng đống ngổn ngang dữ liệu. Nó là công cụ không thể thiếu với bất cứ ai dùng Linux bằng các dòng lệnh và đặc biệt quan trọng với các lập trình viên bởi nó là công cụ tìm kiếm "hướng dòng" (line-oriented). Kết quả trả về sẽ là những dòng text thỏa mãn điều kiện tìm kiếm

Sử dụng grep rất đơn giản:
grep 'tu_khoa' ten_file1 ten_file2 ten_file3
hay sử dụng chức năng pipeline của shell để lấy đầu vào:
cat hehe.txt hoho.c | grep 'return'

Dưới đây là cách dùng các phép OR, AND, NOT với grep:

OR: tu_khoa_mot hoặc tu_khoa_hai
grep -E 'tu_khoa_mot|tu_khoa_hai' file

-E (extended regexp)



AND:
grep -E 'tu_khoa_mot.*tu_khoa_hai' ten_file

NOT: tìm các dòng không chứa tu_khoa
grep -v 'tu_khoa' ten_file

-v (invert match)

(còn nhiều cách khác nhưng bạn không nhất thiết phải biết 5 cách để làm 1 việc làm gì nếu kết quả, hiệu suất của chúng như nhau)

viết trên máy nhà Thồn nên không làm ví dụ được :D

theo http://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/