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").
grep
khô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 -E
tùy chọn). Xem hướng dẫn để biết re_format
hoặc regex
bấ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 grep
với tùy chọn GNU grep
-specific -P
.
Cũng lưu ý rằng grep
trả 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ố grep
triển khai khác ), bạn có thể sử dụng -o
tù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 -P
và -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 sed
thay thế để lấy bit giữa chuỗi prefix
và cuối dòng:
sed -n 's/.*prefix\(.*\)/\1/p' file
Điều này làm là chỉ in các dòng sed
quả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 prefix
một dòng, sed
biến thể sẽ trả về chuỗi sau chuỗi cuối cùng , trong khi grep
biế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 sed
giải pháp sẽ được cầm tay cho tất cả các hệ thống Unix-like.