ksh đã hỗ trợ mô hình mở rộng hạn chế kể từ ksh88, sử dụng cú pháp
special '(' pattern ')'
.
Trong ksh88, các tiền tố nhân vật 'đặc biệt' thay đổi số lượng các trận đấu dự kiến:
'*' for zero or more matches
'+' at least one match
'@' for exactly one match
'?' for zero or one matches
'!' for negation
Trong ksh93, điều này đã được mở rộng với
'{' min ',' max '}'
đưa ra phạm vi chính xác:
for w in 1423 12 "" abc 23423 9 33 3 333
do
[[ $w == {1,3}(\d) ]] && print $w has between 1 and three digits
[[ $w == {2}(\d) ]] && print $w has exactly two digits
done
Và cuối cùng, bạn có thể có sự lộn xộn giống như perl với '~', trong đó giới thiệu một hoàn toàn mới lớp các phần mở rộng, bao gồm các biểu đầy đủ thường xuyên với:
'~ (E) (regex)'
Thêm ví dụ có thể được tìm thấy trong Finnbarr P. Murphy's blog
Nguồn
2011-04-02 14:38:30
Trong khi sử dụng egrep sẽ làm việc, nó là một chương trình bên ngoài và sẽ làm chậm kịch bản rất nhiều. – user1683793