Как я могу найти все файлы, которые содержат встроенные crc32

Как я могу найти все файлы, которые содержат встроенные crc32, например. Mydocument190_ [F285E17D] .pdf, используя команду find

, чтобы выяснить, что crc32 всегда заключены в квадратные скобки [F285E17D], а имена файлов могут содержать как прописные строчные буквы, так и цифры

, дальнейшее пояснение crc32 находятся в имени файла, и цель состоит в том, чтобы затем передать результаты в другую команду для проверки (множество файлов, только некоторые из которых содержат вышеупомянутые crc32)

1
задан 30 May 2014 в 20:07

2 ответа

Я согласился бы с Ahmed на многих точках (использование find, используйте regex, используйте posix-extended - режим), но для реализации. Существует несколько проблем:

  • find имеет нечувствительное к регистру -iregex режим, который делает это лучше, не будучи должен определить A-Z, а также a-z
  • Разговор о, CRCs являются шестнадцатеричными строками. Мы только хотим [0-F] †¦, который я думаю, что мы можем определить как единственный диапазон. Если это не работает, используйте [0-9a-f]
  • , И мы должны проверить на квадратные скобки (или это будет просто соответствовать любой строке с 8 символами).
  • -regex и -iregex ищут целый путь. Мы должны удостовериться, что Ваша строка не находится в имени каталога, таким образом, мы исключаем любые наклонные черты после CRC.

Вот мои текущие максимальные усилия:

find -regextype posix-extended -iregex '.*\[[0-f]{8}\][^/]*'

Это будет допускать extensionless файлы также.

0
ответ дан 30 May 2014 в 20:07

Необходимо использовать параметр

-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 для улучшения шаблона поиска

0
ответ дан 30 May 2014 в 20:07

Другие вопросы по тегам:

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