Я работаю в системе (довольно недавно) на основе Debian.
Я хотел бы создать простой список всех установленных пакетов, соответствующих определенному шаблону. Я могу сделать это, запустив, скажем,
apt list --installed "linux-image-*" | cut -d/ -f1
но я получаю строки, которые мне не нужны, например:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Listing...
Так что, возможно, я бы лучше не использовать apt
. Я могу запустить dpkg-query так:
dpkg-query --showformat='${Package}\n' --show "linux-image*"
но это не ограничивается установленными пакетами. Я мог бы использовать
dpkg-query --list "linux-image-*" | grep "ii"
но тогда я должен был бы выполнить кучу обработки текста, и кто может доверять этим пробелам, верно?
Итак, суть: как правильно получить список установленных пакетов, соответствующих шаблону?
Примечание :
- Бонусные баллы, если это может быть правильное регулярное выражение, а не просто оболочка.
- Необходимость разбора текста кажется менее чем идеальным решением; если это то, что вы предлагаете, пожалуйста, спорьте, почему нет лучшего способа.
источник
aptitude search
иapt list
в этом случае нет.Чтобы «перехватить» искомый термин при выводе команды grep ping dpkg , необходимо заключить поисковый термин следующим образом. « git » используется в качестве условия поиска образца:
Караты (^) II с последующим (2) пространствами Предварения искомого термина не гарантирует ничего ПРЕЖДЕ это кроме того , что комбинация символов может соответствовать.
[[:space:]]
Примыкающий искомый термин , исключающие частичные совпадения от происходить лишь соответствующие пространства сразу ПОСЛЕ него.источник