zypper: как перечислить все активные репозитории пакетов?
Как я могу показать все активные репозитории пакетов с zypper
?
Мне нужен вывод для проверки скрипта.
Я знаю, как перечислить их все. Но я бы хотел не анализировать этот вывод с помощью регулярного выражения:
foo-work:~ # LANG=C zypper lr
# | Alias | Name | Enabled | Refresh
--+-----------------------------------+-----------------------------------+---------+--------
1 | openSUSE 12.3 FOO-BAR | openSUSE 12.3 FOO-BAR | Yes | Yes
2 | openSUSE 12.3 FOO-BAR Test | openSUSE 12.3 FOO-BAR Test | Yes | No
3 | openSUSE-12.3 Updates (FOO-BAR) | openSUSE-12.3 Updates (FOO-BAR) | Yes | Yes
4 | openSUSE-12.3-Non-Oss (FOO-BAR) | openSUSE-12.3-Non-Oss (FOO-BAR) | Yes | No
5 | openSUSE-12.3-Oss (FOO-BAR) | openSUSE-12.3-Oss (FOO-BAR) | Yes | No
2 ответа
Решение
Вы ищете -E, --show-enabled-only
флаг, чтобы показать только включенные репозитории, или -e -
, --export -
получить список в формате определения репозитория, который позволяет гораздо проще анализировать?
zypper lr -E -e - |grep name=
При этом будут распечатаны только включенные репозитории SuSE:
zypper lr | awk -F'|' '{gsub(/ /, "", $0); if($4=="Yes") print $2}'
Вызов gsub предназначен только для удаления начальных и конечных пробелов.