Skip to main content

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/

Comments

  1. Neu can tim 1 khoang thay vi 1 dong thi sao

    ReplyDelete
  2. 1 khoảng là sao, tả rõ xem nào?

    ReplyDelete
  3. kết quả trả về luôn là những dòng, tức là từ đầu dòng cho đến kí tự \n . Nếu tìm trong 1 đoạn vănừ kh thì nó sẽ trả về cả đoạn (chứ ko phải 1 câu, vì nó đánh dấu kết thúc "dòng" bằng kí tự \n). Kết quả trả về thường sẽ highlight từ khóa

    ReplyDelete
  4. ví dụ cần tìm đoạn

    "kết quả trả về luôn là những dòng, tức là từ đầu dòng cho đến kí tự \n . Nếu tìm trong 1 đoạn vănừ kh thì nó sẽ trả về cả đoạn (chứ ko phải 1 câu, vì nó đánh dấu kết thúc "dòng" bằng kí tự \n). Kết quả trả về thường sẽ highlight từ khóa "

    trong 1 bài mà chỉ nhớ từ khóa là "chứ ko phải 1 câu"

    ReplyDelete
  5. thì cứ gõ từ khóa thôi, nó vẫn trả về đoạn ấy. vd gõ grep 'kết quả' thì nó trả về các đoạn có chữ kết quả. Gõ grep 'chứ không phải 1 câu' thì nó trả về đoạn nào chứa từ khóa ấy. (PS: ko biết có hỗ trợ unicode ko, hình như ko )

    ReplyDelete

Post a Comment

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG