Câu trả lời:
Với grep
cú pháp chuẩn :
grep '[>|]'
hoặc là
grep -e '>' -e '|'
hoặc là
grep '>
|'
hoặc là
grep -E '>|\|'
Nếu bạn đang sử dụng GNU grep, bạn có thể thực hiện việc này với toán tử hoặc toán tử ( |
), cần được thoát (trước dấu gạch chéo ngược \
). Vì vậy, để tìm các dòng chứa một trong hai đường ống hoặc dấu lớn hơn, hãy bao gồm chúng theo nghĩa đen với toán tử hoặc toán tử:
grep '|\|>' infile
Đầu ra:
|this is test
where is >
+
, ?
) là đường cú pháp cho \{1,\}
và \{0,1\}
. (mặt khác, các tham chiếu lỏng lẻo của ERE ( \(.\)\1
) chỉ là một tính năng BRE)
Sử dụng biểu thức ngoặc để khớp với một trong hai ký tự mong muốn:
grep "[|>]" infile
Đầu ra:
|this is test
where is >
-i
hoặc -E
ở đây.
Cách chính xác để thực hiện nó là sử dụng cờ -e được chỉ định bởi POSIX. Ví dụ:
grep -e '>\||' infile
grep -e '>' -e '|' infile
làm việc quá
-e
được chỉ định bởi POSIX nhưng không hữu ích ở đây. \|
không được chỉ định bởi POSIX.
\|
không phải là mộtBRE
toán tử tiêu chuẩn , mặc dù nó hoạt động với GNUgrep
, thứ đượcgrep
tìm thấy trong hầu hết các hệ điều hành được xây dựng xung quanh nhân Linux.