首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在apt-get url中只显示"package_name.deb“?

如何在apt-get url中只显示"package_name.deb“?
EN

Stack Overflow用户
提问于 2019-03-14 08:28:16
回答 3查看 431关注 0票数 2

我从命令中生成了一个列表:

代码语言:javascript
复制
apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 >package.txt

输出如下:

代码语言:javascript
复制
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名称,以便根据依赖关系生成索引。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-14 08:43:50

你可以再用一个像这样的裁剪:

代码语言:javascript
复制
apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | cut -d '/' -f 1 | rev > package.txt

您将得到任何URL中的最后一个文件名,而我是您感兴趣的。

控制台输出

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-03-14 08:31:29

尝试使用AWK

代码语言:javascript
复制
apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | awk 'BEGIN { FS="/"; } { print $1; }' | rev > package.txt
票数 1
EN

Stack Overflow用户

发布于 2019-03-14 08:37:43

您可以使用sed“s/.*//g”移除前导部分。

代码语言:javascript
复制
apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | sed "/.*\///g" >package.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55157932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档