4.1.3 Как повысить информативность запроса
Индекс4.1.3 Как повысить информативность запроса
4.1.3.1 Перенаправление вывода на grep
Команда grep предоставляет мощные инструменты фильтрации текстового потока для Linux (Unix) систем. Сочетание rpm -qa и grep представляет собой настоящую поисковую машину. Например, задание шаблона "py" в качестве аргумента grep приведет к такому выводу:
# rpm -qa | grep py python-2.2.1-17 pygtk2-1.99.12-7 pyxf86config-0.3.1-2 rpm404-python-4.0.4-8x.27 python-devel-2.2.1-17 gnome-python2-gtkhtml2-1.99.11-8 orbit-python-1.99.0-4 gnome-python2-canvas-1.99.11-8 gnome-python2-bonobo-1.99.11-8 gnome-python2-1.99.11-8 pyOpenSSL-0.5.0.91-1 rpm-python-4.1-1.06 pygtk2-devel-1.99.12-7 kdesdk-kspy-3.0.3-2 mod_python-3.0.0-10 gnome-python2-gconf-1.99.11-8 libxslt-python-1.0.19-1 python-tools-2.2.1-17 libxml2-python-2.4.23-1 pygtk2-libglade-1.99.12-7 python-optik-1.3-2 kfloppy-3.0.3-3 |
Опции grep, а также регулярные выражения, которые можно использовать в grep, досупны в справке man.
Наиболее интересные примеры.
Для поиска пакета, имя которого начинается с определенного буквосочетания, введите:
# rpm -qa | grep ^py |
где py - начальные буквы имен пакетов.
Для исключения пакетов с заданным буквосочетанием в имени, введите:
# rpm -qa | grep -v blabla |
В команде grep опция -v означает не многословный вывод, а инверсию шаблона, то есть "выведи мне все, что не соответствует шаблону".
4.1.3.2 Запросы с помощью метасимволов
Помимо возможности перенаправить вывод, rpm имеет некоторые встроенные механизмы, помогающие детализировать запрос к списку пакетов. Например, можно использовать метасимволы для создания шаблонов имен:
# rpm -qa "send*" sendmail-cf-8.11.6-3 sendmail-8.11.6-3 |
Кавычки вокруг шаблона send* экранируют специальный символ * от интерпретации его определенным образом механизмами Linux shell. Эта команда ищет все пакеты, имена которых начинаются с send. Подобно grep, такая форма команд может инвертировать шаблон с помощью символа !:
# rpm -qa "!send*" |
Данная вариация будет искать пакеты, имена которых не начинаются с send.
Помимо grep часто используются и другие команды, например wc -l можно использовать для подсчета количества найденных пакетов.
Далее - Какому пакету принадлежит файл?
Назад - Запросы о пакетах
Содержание