Вы не можете различать уровень журнала syslog (если это то, что вы хотите) после записи журналов в файл журнала. Но lnav: http://lnav.org/ поддерживает автоматическую раскраску для многих типов журналов.
Вы можете передать apt-file list
список пакетов для обработки за один раз, используя
apt-file -f-
(для чтения со стандартного ввода ). Мои измерения показывают, что
apt-get -s install xorg | awk '/^Inst / { print $2 }' | apt-file -f- list
более чем в два раза быстрее, чем тот же процесс с циклом apt-file
(с использованиемxargs
).
Я публикую -процесс с sort -k2,2
, так как мне очень нравится видеть задействованный пакет.
Использование apt-get -s install
вместо пост--обработки apt-cache depends xorg
означает, что учитываются все пакеты, которые будут установлены в вашей системе, и только те пакеты, включая рекурсивные зависимости. apt-cache depends xorg
показывает только непосредственные зависимости xorg
, а ваша обработка сообщения -не обрабатывает альтернативы.
Это то, чем я сейчас пользуюсь,но он может содержать ошибки и определенно не очень эффективен:
apt-cache depends xorg | grep '..\(Depends\|Recommends\): [^<]' | sed 's/[^:]*: //' | while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done | sed 's/[^:]*: //' | sort
Шаг -на -шаг:
Получить список пакетов, которые будут установлены:
apt-cache depends xorg
Выберите записи «зависит» и «рекомендует»:
grep '..\(Depends\|Recommends\): [^<]'
Удалите все, кроме имени пакета:
sed 's/[^:]*: //'
Если строка не пуста, запустите apt-file
с каждым именем пакета:
while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done
apt-file list
возвращает строки, каждая из которых начинается с соответствующего имени пакета для файла. Удалить имя пакета из строки, оставив только имя файла:
sed 's/[^:]*: //'
Сортировка строк:
sort