Cũng như các tiêu chuẩn mẫu (đơn giản) glob, bash ≥4.0 đã mở rộng globbing.
Đây là off by default. Để bật tính năng này, hãy sử dụng: shopt -s extglob
Với extglob
bạn có quyền truy cập vào các mẫu biểu thức chính quy mở rộng cũng như các mẫu chuẩn. Hơn nữa, trong tình huống cụ thể của bạn, bạn có thể điều chỉnh hành vi của glob hơn nữa bằng cách bật một số case insensitive glob, cũng bị tắt theo mặc định. Để bật tính năng này, hãy sử dụng: shopt -s nocaseglob
Bật extglob
không làm thay đổi cách hoạt động của bóng tiêu chuẩn. Bạn có thể kết hợp hai hình thức. Vấn đề duy nhất là bạn phải nhận thức được cú pháp regex mở rộng đặc biệt. ví dụ, trong ví dụ dưới đây, phần duy nhất của nó là một regex mở rộng, là ?(e)
. Phần còn lại là mở rộng glob tiêu chuẩn, với trường hợp vô hiệu hóa được kích hoạt.
Các mở rộng-regex, case-insensitive glob cho tình hình của bạn là:
shopt -s extglob nocaseglob
ls -l *.jp?(e)g
Bạn có thể tìm thêm thông tin và ví dụ tại địa chỉ: Bash Extended Globbing.
Nguồn
2011-10-18 23:03:33
Cảm ơn rất nhiều, đó là chính xác những gì tôi đang tìm kiếm :) – Elliot