KVM против контейнера против виртуального ящика

Обратите внимание, что -regex/-iregex(расширения GNU ), как и стандартное -path, соответствуют полному пути, а не только имени файла.

Если вы хотите найти файлы, у которых имя(в отличие от пути)начинается с 2 десятичных цифр, за которыми следует что-то, что не является десятичной цифрой и заканчивается на .flac, вы можно сделать портативно:

find. -name '[0-9][0-9][!0-9]*.[fF][lL][aA][cC]'

Обратите внимание, что это не будет соответствовать на 01.flac, потому что [!0-9]не может соответствовать там. Вместо этого вы могли бы написать это:

find. -name '[0-9][0-9][!0-9]*' -name '*.[fF][lL][aA][cC]'

В них используются подстановочные знаки, а не регулярные выражения.

Чтобы использовать GNU find's -iregex, эквиваленты были бы:

find. -regextype egrep -iregex '.*/[0-9]{2}[^0-9/][^/]*\.flac'
find. -regextype egrep -iregex '.*/[0-9]{2}([^0-9/][^/]*)?\.flac'

То есть мы привязываем две цифры в начале, чтобы убедиться, что остальная часть регулярного выражения не охватывает /.

1
11.02.2018, 20:09
0 ответов

Теги

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