Как я могу найти все файлы, которые содержат встроенные crc32, например. Mydocument190_ [F285E17D] .pdf, используя команду find
, чтобы выяснить, что crc32 всегда заключены в квадратные скобки [F285E17D], а имена файлов могут содержать как прописные строчные буквы, так и цифры
, дальнейшее пояснение crc32 находятся в имени файла, и цель состоит в том, чтобы затем передать результаты в другую команду для проверки (множество файлов, только некоторые из которых содержат вышеупомянутые crc32)
Я согласился бы с Ahmed на многих точках (использование find
, используйте regex, используйте posix-extended
- режим), но для реализации. Существует несколько проблем:
find
имеет нечувствительное к регистру -iregex
режим, который делает это лучше, не будучи должен определить A-Z
, а также a-z
[0-F]
†¦, который я думаю, что мы можем определить как единственный диапазон. Если это не работает, используйте [0-9a-f]
-regex
и -iregex
ищут целый путь. Мы должны удостовериться, что Ваша строка не находится в имени каталога, таким образом, мы исключаем любые наклонные черты после CRC. Вот мои текущие максимальные усилия:
find -regextype posix-extended -iregex '.*\[[0-f]{8}\][^/]*'
Это будет допускать extensionless файлы также.
Необходимо использовать параметр
-regex
с командой
находки, Вы будете тогда искать имена файлов с 8 символами подряд, которые могли быть строчной буквой, прописной буквой или номером (crc32)
, следующая команда будет хорошо работать
find . -regex '.*[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z].*'
еще лучше, можно использовать опцию
-regextype posix-extended
для, выбрал количество шаблона repetion {8} как после
find . -regextype posix-extended -regex '.*[0-9a-zA-Z]{8}.*'
средства.* нулевые или более случайные символы
[0-9a-zA-Z] {8} означает любой символ от 0 до 9 или к z, или от A до Z существующие 8 раз подряд
можно также добавить расширение файла или определенный шаблон вокруг crc32, если Вы хотите.
можно узнать больше regex для улучшения шаблона поиска