Để sử dụng grepcho hai dòng khác nhau, tìm kiếm cả hai mẫu
$ grep -e sweet -e lemon file_type
This is a sweet
lemon.
Hoặc sử dụng xen kẽ
$ grep -E 'sweet|lemon' file_type
This is a sweet
lemon.
Để có được dòng tiếp theo sau một mẫu, bạn có thể sử dụng tùy chọn ngữ cảnh
$ grep -A1 sweet file_type
This is a sweet
lemon.
Nhưng nếu bạn đang tìm kiếm một cách rõ ràng cho một mô hình multiline, đó là bởi vì khó grepnghĩ trong dòng ... . Bạn .*sẽ nắm bắt mọi thứ giữa "ngọt" và "chanh" trên đường dây . Chúng ta có thể lấy "chanh" trên dòng tiếp theo bằng -Pcách sử dụng \nđể khớp với dòng mới và bằng cách nói greptệp bị tách biệt với -z:
$ grep -zPo 'This is a sweet\nlemon' file_type
This is a sweet
lemon.
Ghi chú:
-ESử dụng các biểu thức chính quy mở rộng (để sử dụng |ký tự thay thế mà không cần phải thoát nó)
-An In các dòng bổ sung sau mẫu, trong đó n là số lượng dòng để in
-PSử dụng các biểu thức chính quy theo kiểu perl ("thử nghiệm" trong grep- cài đặt pcregrepthay thế để hỗ trợ regex perl tốt hơn)
-zSử dụng ký tự null làm dấu phân cách (chỉ giả vờ trong trường hợp này, nhưng grepsẽ lấy từ của chúng tôi cho nó)
-o chỉ in phần phù hợp
grep -zPlệnh sẽ hoạt động trong trường hợp cụ thể này (một tệp bao gồm chính xác hai dòng), nhưng nhìn chung, nó sẽ coi bất kỳ tệp phân tách dòng mới thông thường nào là một dòng, do đó, bỏ toàn bộ nội dung tệp (nếu có khớp ở đâu đó) hoặc không có gì; thông thường đó không phải là những gì mọi người sử dụnggrepcho.