Tôi đã thấy ví dụ này:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Theo cú pháp sau: ${variable//pattern/replacement}
Thật không may, pattern
trường dường như không hỗ trợ cú pháp regex đầy đủ (nếu tôi sử dụng .
hoặc\s
, ví dụ, nó cố gắng khớp các ký tự bằng chữ).
Làm cách nào tôi có thể tìm kiếm / thay thế một chuỗi bằng cú pháp regex đầy đủ?
\s
không phải là một phần của cú pháp biểu thức chính quy định chuẩn POSIX (không phải BRE hoặc ERE); đó là một phần mở rộng PCRE và hầu như không có sẵn từ shell. [[:space:]]
là tương đương phổ quát hơn.
\s
có thể được thay thế bằng [[:space:]]
, bằng cách, .
bởi ?
, và các phần mở rộng extglob cho ngôn ngữ mẫu vỏ cơ sở có thể được sử dụng cho những thứ như các nhóm con tùy chọn, các nhóm lặp lại và tương tự.