Где lpd и lpr регистрируют ошибки и сообщения?

Вы можете перебирать список файлов, указанный в командной строке, следующим образом:

for file in "$@"
do
    echo "Considering file ==> $file <=="
done

Ваш метод сопоставления слов должен быть совершенно эффективным. Вы также можете искать вхождения слова, используяgrep -o

echo 'I can cry cryogenic tears when I scry my hands. Can you cry too?' |
    grep -o '\bcry\b'    # \b marks a word boundary

Передача результата этого в wc -lдаст вам количество вхождений во входном потоке.

Использование $(... )позволяет интерполировать вывод команды в текст, используемый другой командой. Например

echo "The date and time right now is $(date)"

Нам потребуется дополнительная работа, чтобы не искать первый файл, а вместо этого использовать его как список слов. Но, собрав это вместе, вы можете получить что-то вроде этого:

wordfile="$1"
wordlist=($(cat "$wordfile"))
shift

for file in "$@"
do
    for word in "${wordlist[@]}"
    do
        # echo "$file: $word:" $(grep -o "\b${word}\b" "$file" | wc -l)  # My way
        echo "$file: $word:" $(tr ' ' '\n' <"$file" | grep -c "$word")   # Your way
    done
done

Это не очень эффективно, потому что N слов будет искать каждый файл N раз. Вы можете найти, что grep -fпоможет здесь.

1
24.01.2017, 18:54
1 ответ

CUPS заменяет lpd и другие команды, поэтому вы видите некоторые файлы *. Pre-cups в / usr / sbin .

Обычно lpd настраивается через / etc / printcap , и, более конкретно, журналы заканчиваются в файле учета, указанном для каждой записи printcap с ] lf = (см. man 5 printcap ). По умолчанию это / dev / console , но, как вы можете видеть в / etc / examples / printcap , это можно перенаправить на что-то вроде / var / log / lpd-errs . CUPS также устанавливает собственный printcap .

С другой стороны, журналы CUPS находятся внутри / var / log / cups / . Если вы используете CUPS - который не имеет ничего общего с lpd и фактически заменит его при установке - там будут находиться ваши журналы.

Если вы хотите использовать lpd ] вместо CUPS вам нужно будет удалить последний. В зависимости от вашего принтера для использования lpd вам, вероятно, также понадобится foomatic, который доступен в пакетах (подробности установки см. В документации пакета).

Также обратите внимание, что независимо от того, используете ли вы lpd или CUPS, некоторые принтеры также требуют проприетарного фильтра (например, EPSON escpr ), который, скорее всего, придется скомпилировать из исходников.

3
27.01.2020, 23:25

Теги

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