Список zip-файлов, которые могут заканчиваться или не заканчиваться цифрами - PullRequest
0 голосов
/ 05 апреля 2019

Я хотел бы перечислить все почтовые файлы, которые могут заканчиваться или не заканчиваться числами, как показано ниже:

job_customer_old_0.1.zip
job_customer_old.zip
job_customer_0.2.zip
job_customer.zip

find "directtory_path" -name job_customer[_0-9]*\.zip

Я ожидаю только job_customer.zip и job_customer_0.2.zip. Но я получаю все 4.

Помогите пожалуйста.

1 Ответ

1 голос
/ 05 апреля 2019

-name из find соответствует как оболочка.Таким образом, [_0-9] соответствует одному (!) Символу, который является _ или числом.Тогда * соответствует любому (!) Символу любое количество раз.

Если вы хотите использовать регулярные выражения с find, используйте параметр -regex.Пример:

# creating MCVE
xargs touch <<EOF
job_customer_old_0.1.zip
job_customer_old.zip
job_customer_0.2.zip
job_customer.zip
EOF

find . -regex '\./job_customer[_0-9\.]*\.zip'

Это напечатает job_customer.zip и job_customer_0.2.zip.Обратите внимание, что в _0.2 есть также точка ., поэтому я добавил, что внутри фигурных скобок [_0-9\.].С опцией -regextype find вы можете указать find для использования различных разновидностей регулярных выражений.Обратите внимание, что регулярное выражение соответствует всей части, а не только имени файла, поэтому, вероятно, вам придется использовать ex.find "directtory_path" -regex './directtory_path/job_customer[_0-9\.]*\.zip'

...