Мой сын хочет использовать этот сканер под Debian. Я искал поддержку, и этот вопрос появился среди первых обращений, поэтому я делюсь своим опытом здесь.
На нескольких страницах также рекомендуется приведенная выше ссылка, однако SANE поддерживает сканер HP ScanJet 2400 напрямую через серверную часть Genesys . Вы можете проверить свою установку с помощью scanimage -L
и выполнить сканирование с помощью scanimage > test.pnm
из командной строки.
find
возвращает список всех файлов и всех каталогов. Вы должны ограничить свой поиск, чтобы попытаться найти файлы, которые действительно содержат строку. Вы можете попробовать добавить:
find -type f... # Doesn't return directories
find -iname "*.txt"... # returns only files ending in '.txt' (case insensitive)
Или, если вы действительно хотите пофантазировать, вы можете попробовать запускать sed только для файлов, которые действительно содержат строку, используя grep:
grep -l -r 'FCLP1025' | xargs sed -i 's/FCLP1025/FCLP1080/g'
Команда grep -r
ищет рекурсивно, и -l
перечисляет только имена соответствующих файлов. Затем xargs
использует стандартный ввод и добавляет его в качестве аргументов для следующей команды, которая аналогична {}
при использовании find -exec cmd {} \;
.
Тем не менее, протестировано в bash на linux, поэтому, если это не работает, вы можете увидеть grep --help
в git -bash/cygwin, если флаги разные. Хотя обычно они одинаковые.
Ваша команда может найти каталоги (и другие не -обычные файлы ). Каталоги — это не обычные файлы, которые вы можете редактировать с помощью sed
.
Добавление теста -type f
к команде find
гарантирует, что вы обрабатываете только обычные файлы:
find. -type f -not -path \*.hg\* -exec sed -i 's/FCLP1025/FCLP1080/g' {} \;
или, со стандартными опциями find
и более читаемым цитированием,
find. -type f ! -path '*.hg*' -exec sed -i 's/FCLP1025/FCLP1080/g' {} \;
Если вы просто хотите полностью пропустить какой-либо каталог .hg
, используйте -prune
, чтобы удалить его из пути поискаfind
:
find. -name.hg -prune -type f -exec sed -i 's/FCLP1025/FCLP1080/g' {} \;
Это заставляет find
даже не входить в каталоги с именем .hg
. Ваша команда будет входить в такие каталоги и проверять все в них с помощью -path
, что будет немного неэффективно.
Обратите внимание, что не будет вывода вашей команды find
, так какsed -i
(sed
выполнение в -редактировании места )никогда не приводит к выводу на терминал (, если нет диагностических сообщений ). Вывод sed -i
попадает в файлы, которые он редактирует.
Также обратите внимание, что последняя команда find
выше попытается отредактировать каждый файл. Если вы что-то знаете об именах файлов, которые хотите отредактировать,вы можете добавить -name 'some pattern'
непосредственно перед -exec
, чтобы ограничить запуск sed
только этими файлами.