Механизмы поиска (сопоставления) данных являются стандартными, как правило, для всех систем Linux [дубликат]

Использование bash:

shopt -s globstar
for f in **/*.sh; do printf '%s\n' "${f%*.sh}"; done
-1
14.12.2019, 00:13
1 ответ

Вот список «типов регулярных выражений», как 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 г.

В течение трех столетий "*" может означать что угодно или ничего .

-4
28.01.2020, 05:14

Теги

Похожие вопросы