Найти файлы во вложенных каталоги с использованием REGEX

Кто-то уже сказал, как реализовать это в сценарии оболочки (и perl )в режиме суперпользователя:

Версия суперпользователя

И я нашел на github полную версию сценария оболочки:

Github Bash-версия

-2
07.08.2019, 12:57
2 ответа

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

Два решения для этого:

  1. find topperlayer -type f -name testfile
    

    Это приведет к поиску в каталоге topperlayerи всех подкаталогах перед обычным файлом с именем testfile. Затем печатается путь к каждому найденному файлу.

  2. shopt -s globstar
    printf '%s\n' topperlayer/**/testfile
    

    Это сначала активирует параметр оболочки globstarв bash. Это позволяет вам использовать шаблон подстановки **, который работает аналогично *, но соответствует "рекурсивно". Затем printfнапечатает каждое имя, соответствующее заданному шаблону подстановки.

Оба приведенных выше варианта будут печатать имена путей каждыйtestfileпод topperlayer.

Как только вы найдете правильный путь к файлу, добавьте его в файл конфигурации.

1
28.01.2020, 05:16

findты друг.

find topperlayer -path 'glob/testfile'

Заменить шаблон шаблоном (не регулярным выражением )например.start*middle*end

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

find topperlayer -regex 'regex/testfile'
0
28.01.2020, 05:16

Теги

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