Как показать только "имя_пакета.deb" в apt-get url? - PullRequest
1 голос
/ 14 марта 2019

У меня есть список, сгенерированный из команды:

apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 >package.txt

С некоторыми выводами вроде: `

http://archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/libfakeroot_1.22-2ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/fakeroot_1.22-2ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gnupg2/gnupg-l10n_2.2.4-1ubuntu1.2_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gnupg2/gnupg-utils_2.2.4-1ubuntu1.2_amd64.deb

Пробовал с использованием grep, но я могу удалить только: http://archive.ubuntu.com/ubuntu/pool/main/

Моя главная цель - привести в порядок только имена package.deb, чтобы я мог сгенерировать индекс в соответствии с зависимостью.

Ответы [ 3 ]

1 голос
/ 14 марта 2019

Вы можете использовать еще один разрез, как это:

apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | cut -d '/' -f 1 | rev > package.txt

Вы получите последнее имя файла в любом URL, и я думаю, что вы заинтересованы в этом.

Консольный вывод

user@domain $ apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | cut -d '/' -f 1 | rev > package.txt


libfakeroot_1.22-2ubuntu1_amd64.deb
fakeroot_1.22-2ubuntu1_amd64.deb
gnupg-l10n_2.2.4-1ubuntu1.2_all.deb
gnupg-utils_2.2.4-1ubuntu1.2_amd64.deb

user@domain $
1 голос
/ 14 марта 2019

Попробуйте использовать AWK

apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | awk 'BEGIN { FS="/"; } { print $1; }' | rev > package.txt
0 голосов
/ 14 марта 2019

вы можете использовать sed "s /.*/// g" для удаления ведущей части.

apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | sed "/.*\///g" >package.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...