如何在apt-get网址中仅显示“ package_name.deb”?

时间:2019-03-14 08:28:16

标签: linux unix

我有一个从命令生成的列表:

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 个答案:

答案 0 :(得分:1)

尝试使用AWK

apt-get --print-uris --yes install <package> | grep ^\' | cut -d\' -f2 | rev | awk 'BEGIN { FS="/"; } { print $1; }' | rev > package.txt

答案 1 :(得分:1)

您可以像这样再使用一个切口:

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 $

答案 2 :(得分:0)

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

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Vte', '2.91')
from gi.repository import Gtk, Vte, GLib, Pango, Gio

    class TheWindow(Gtk.Window):
        def __init__(self):
            Gtk.Window.__init__(self, title="GTK3 IDE")
            self.set_default_size(600, 300)

            terminal = Vte.Terminal()
            #pty = terminal.pty_new_sync(Vte.PtyFlags.DEFAULT)
            pty = Vte.Pty.new_sync(Vte.PtyFlags.DEFAULT)
            terminal.set_pty(pty)

            pty.spawn_async(
                None,
                ["/bin/python"],
                None,
                GLib.SpawnFlags.DO_NOT_REAP_CHILD,
                None,
                None,
                -1,
                None,
                self.ready
                )

            #self.terminal.get_pty(self.pty)

            box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

            scroller = Gtk.ScrolledWindow()
            scroller.set_hexpand(True)
            scroller.set_vexpand(True)
            scroller.add(terminal)
            box.pack_start(scroller, False, True, 2)
            self.add(box)

        def ready(self, pty, task):
            print('pty ', pty)


    win=TheWindow()
    win.connect('destroy', Gtk.main_quit)
    win.show_all()
    Gtk.main()