Как Zypper находит необходимые пакеты в репозитории?

Если вы не слишком придирчивы к белому пространству, сделайте это с помощью двух правил awk, например, таких:

 awk '$1 { printf "\n" $0 } !$1 { printf OFS $7 }' FS=, OFS='|' infile

Это оставляет пустую строку в начале вывода и пропускает одну в конце. Чтобы исправить это, добавьте if и END:

awk '$1 { if(NR>1) printf "\n"; printf $0 } !$1 { printf OFS $7 } END { printf "\n" }' FS=, OFS='|' infile

Вывод:

ABC,SSSD,12345,NSS,12345,xxx,TS11|TS21|TS22|BS26|GPRS
ABC,SSSD,12356,NSS,12356,xxx,TS11|TS21|TS22|GPRS|BS26

Редактировать - замечание о % в $0

Как отметил Гленн в комментариях, если ваши строки содержат %, безопаснее вызвать printf со строкой формата, например. например:

awk '$1 { if(NR>1) printf "\n"; printf "%s", $0 } !$1 { printf OFS"%s", $7 } END { printf "\n" }' FS=, OFS='|' infile
0
07.06.2018, 12:17
1 ответ

Вы можете просмотреть zypper.log, чтобы получить URL-адрес RPM:

leap15:~ # zypper in xeyes
[...]

В зависимости от строки поиска вы можете найти URL-адрес соответствующего RPM:

leap15:~ # grep 'http://download.opensuse.org' /var/log/zypper.log | grep xeyes
2018-10-15 11:37:16 <1> leap15(15814) [zypp++] MediaCurl.cc(doGetFileCopyFile):1499 URL: http://download.opensuse.org/distribution/leap/15.0/repo/oss/x86_64/xeyes-1.1.1-lp150.1.3.x86_64.rpm
0
28.01.2020, 04:20

Теги

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