Biểu thức thông thường có nhiều hương vị khác nhau. Những gì bạn đang hiển thị là một biểu thức chính quy giống như Perl (PCRE, "Biểu thức chính quy tương thích Perl").
grepkhông POSIX biểu thức chính quy. Đây là các biểu thức chính quy cơ bản (BRE) và các biểu thức chính quy mở rộng (ERE, nếu grepđược sử dụng với -Etùy chọn). Xem hướng dẫn để biết re_formathoặc regexbất kỳ hướng dẫn tương tự nào mà hướng dẫn của bạn grepđề cập đến trên hệ thống của bạn hoặc các văn bản tiêu chuẩn POSIX mà tôi vừa liên kết đến.
Nếu bạn sử dụng GNU grep, bạn sẽ có thể sử dụng các biểu thức chính quy giống như Perl nếu bạn sử dụng grepvới tùy chọn GNU grep-specific -P.
Cũng lưu ý rằng greptrả về các dòng theo mặc định, không phải các chuỗi từ các dòng. Một lần nữa, với GNU grep(và một số greptriển khai khác ), bạn có thể sử dụng -otùy chọn để chỉ nhận (các) bit khớp với biểu thức đã cho từ mỗi dòng.
Lưu ý rằng cả hai -Pvà -ođều là các phần mở rộng không chuẩn , đặc điểm kỹ thuật POSIX củagrep .
Nếu bạn không sử dụng GNU grep, thì bạn có thể sử dụng sedthay thế để lấy bit giữa chuỗi prefixvà cuối dòng:
sed -n 's/.*prefix\(.*\)/\1/p' file
Điều này làm là chỉ in các dòng sedquản lý để áp dụng thay thế đã cho. Sự thay thế sẽ thay thế toàn bộ dòng khớp với biểu thức (là BRE), với phần của nó xảy ra sau chuỗi prefix.
Lưu ý rằng nếu có một vài phiên bản của prefixmột dòng, sedbiến thể sẽ trả về chuỗi sau chuỗi cuối cùng , trong khi grepbiến thể GNU sẽ trả về chuỗi sau chuỗi đầu tiên (bao gồm các phiên bản khác prefix).
Các sedgiải pháp sẽ được cầm tay cho tất cả các hệ thống Unix-like.