Использование bash:
shopt -s globstar
for f in **/*.sh; do printf '%s\n' "${f%*.sh}"; done
Вот список «типов регулярных выражений», как find
их видит и называет:
]# find -regextype help
find: Unknown regular expression type 'help'; valid types are
'findutils-default', 'awk', 'egrep', 'ed', 'emacs', 'gnu-awk', 'grep',
'posix-awk', 'posix-basic', 'posix-egrep', 'posix-extended', 'posix-minimal-basic',
'sed'.
А вот экзотический пример :шаблон сопоставления команд в bash для переменнойHISTIGNORE
:
A colon-separated list of patterns used to decide which command lines should be saved on the history list. Each pattern is anchored at the beginning of the line and must match the complete line (no implicit '*' is appended).
Это оболочки, используемые для строк, а не для файлов.
BRE и ERE:это два основных варианта, я думал, вы сгруппировали их в "posix":-базовый и -расширенный.
Редактор vim
также имеет собственную систему, разделяющую "магию" и "не" -магию. Он имеет хорошую онлайн-справку и является хорошим полем для тестирования.
Shell wildcards (shell globs), used mostly to match and replace data in the form of file name
Возможно, проблема в этом. Подстановочные знаки оболочки предназначены только для сопоставления имен файлов (). Вы не можете переименовать файл с помощью какой-либо замены подстановочных знаков. Кроме того, имя файла на самом деле не является «данными».
Звезда означает "любую букву" даже вне компьютеров. :"L ***" - это слово из четырех букв.
Плоский список не сможет отразить сложность.
ls L???
будет подстановочным знаком оболочки, а L\w\{3}
возможным регулярным выражением для (или внутри )утилиты в приведенном выше примере.
-- My sister, I dare say, added he, does not care to let a man come so near her * * * *. I will not say whether my uncle Toby had completed the sentence or not;- 'tis for his advantage to suppose he had...
Из «Тристрама Шенди», 1759 г.
*
" может означать что угодно или ничего .