Как я могу заменить строку во всех файлах в каталоге и во всех подкаталогах, не изменяя ни один из скрытых каталогов / файлов?

  • Я смог связаться с человеком, который работал с водителем. Вот их ответ:MT9M032 - это только сенсор камеры. Он не может быть подключен напрямую к компьютер, так что в данном случае вы использовали демонстрационную доску из Микрона/Аптины, чтобы действовать. в качестве моста между датчиком и USB. Это обычная конструкция (хотя тип моста может отличаться). Для поддержки устройства необходимо два драйвера, один драйвер для датчика. и один водитель на мост. Водитель mt9m032, над которым я работал, должен быть используемый в качестве драйвера датчика, но вам не хватает драйвера моста для DEMO2. на борт. Я не знаю ни одного такого драйвера ядра Linux. Это был бы интересный проект, но будет включать в себя довольно много работы.

    sed -i 's|^Alias /phppgadmin|Alias /!phppgadmin|' /etc/phppgadmin/apache.conf
    

    Подводя итог, есть драйверы для сенсорных плат камеры и драйверы для платы моста USB. Оба должны быть написаны и доступны. Кроме того, автор сказал, что вышеуказанный драйвер камеры не будет полезен на Macintosh, если он не работает под Linux.

  • 1
    04.06.2015, 00:51
    3 ответа

    Вы можете использовать:

    find . -name .git -prune -o -type f -exec sed -i 's/_backpack.html/_backpack_cal.html/g' {} +
    

    Я добавил раздел -name .git -prune , который в основном означает «если имя каталога .git , не обрабатывайте это каталог. "

    Также обратите внимание на добавленный -o (то есть или ), который выполняет ваш оператор, только если первый ложный (т.е. если имя обработанного файла это каталог .git ).

    Конечно, вы должны проверить это перед фактическим выполнением команды, заменив, например, часть -exec ... на -print .

    4
    27.01.2020, 23:20

    Если вы хотите исключить .git только :

    find . ! -path '.git/*' -type f
    

    Чтобы исключить все скрытые файлы и каталоги:

    find . ! -path '*/.*' -type f
    
    0
    27.01.2020, 23:20

    Добавьте:

    ! -regex '.*/\.git/.*'
    

    , чтобы пропустить вхождения .git и его содержимое во всех подкаталогах:

    find . -type f ! -regex '.*/\.git/.*' -exec sed -i 's/_backpack.html/_backpack_cal.html/g' {} +
    
    • ! опровергает следующее выражение.
    • Регулярное выражение . * / \. Git /.* соответствует файлам, путь к которым содержит /. Git / .

    (Лучше всего, прежде чем доверять моему предложению, проверьте, действительно ли он пропускает каталог .git , например, заменив sed безобидным ls :

    find . -type f ! -regex '.*/\.git/.*' -exec ls -l {} \; | less
    

    )

    0
    27.01.2020, 23:20

    Теги

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