Как использовать C.L.I. конвертировать пакеты в выводе из apt-cache в список, разделенный пробелами, для использования с apt-get download? [дубликат]

Как использовать интерфейс командной строки (не графический интерфейс) ), чтобы преобразовать список пакетов зависимостей в выводе из apt-cache depends в список, разделенный пробелами, для использования с apt-get download ? Предпочтительно, чтобы два действия выполнялись с помощью одной команды.

(Под «списком пакетов зависимостей» я имею в виду все пакеты с префиксом « Depends: ».)

Пример использования - загрузка всех зависимых пакетов пакета на машину с доступом в Интернет для использования на машине без доступа в Интернет, а также чтобы научиться переформатировать текст через командную строку.

Один из примеров с длинным списком зависимостей включает команду apt-cache plays gimp , вывод которой показан ниже. (Этот пример включает несколько зависимостей, перечисленных несколько раз, но apt-get download явно игнорирует повторяющиеся записи, поэтому нет необходимости их отфильтровывать.)

gimp
  Depends: libgimp2.0
  Depends: libgimp2.0
  Depends: gimp-data
  Depends: gimp-data
  Depends: libgdk-pixbuf2.0-0
  Depends: xdg-utils
  Depends: libaa1
  Depends: libbabl-0.1-0
  Depends: libbz2-1.0
  Depends: libc6
  Depends: libcairo2
  Depends: libfontconfig1
  Depends: libfreetype6
  Depends: libgcc1
  Depends: libgegl-0.4-0
  Depends: libgexiv2-2
  Depends: libglib2.0-0
  Depends: libgs9
  Depends: libgtk2.0-0
  Depends: libgudev-1.0-0
  Depends: libharfbuzz0b
  Depends: libheif1
  Depends: libilmbase23
  Depends: libjpeg8
  Depends: liblcms2-2
  Depends: liblzma5
  Depends: libmng2
  Depends: libmypaint-1.3-0
  Depends: libopenexr23
  Depends: libopenjp2-7
  Depends: libpango-1.0-0
  Depends: libpangocairo-1.0-0
  Depends: libpangoft2-1.0-0
  Depends: libpng16-16
  Depends: libpoppler-glib8
  Depends: librsvg2-2
  Depends: libstdc++6
  Depends: libtiff5
  Depends: libwebp6
  Depends: libwebpdemux2
  Depends: libwebpmux3
  Depends: libwmf0.2-7
  Depends: libx11-6
  Depends: libxcursor1
  Depends: libxext6
  Depends: libxfixes3
  Depends: libxmu6
  Depends: libxpm4
  Depends: zlib1g
  Breaks: gimp-plugin-registry
  Recommends: ghostscript
    ghostscript:i386
 |Suggests: gimp-help-en
  Suggests: <gimp-help>
    gimp-help-ca
    gimp-help-de
    gimp-help-el
    gimp-help-en
    gimp-help-es
    gimp-help-fr
    gimp-help-it
    gimp-help-ja
    gimp-help-ko
    gimp-help-nl
    gimp-help-nn
    gimp-help-pt
    gimp-help-ru
    gimp-help-sl
    gimp-help-sv
  Suggests: gimp-data-extras
  Suggests: gimp-python
  Suggests: gvfs-backends
    gvfs-backends:i386
  Suggests: libasound2
    liboss4-salsa-asound2
  Replaces: gimp-plugin-registry
0
задан 26 March 2019 в 20:20

1 ответ

Ответ, в который я прибыл, apt-get download $(apt-cache depends gimp | while read line; do grep --only-matching --perl-regexp "(?<= Depends: ).+"; done | tr "\n" " ") использование пакета gimp как пример.

Объяснение:

  • Выполнение apt-cache depends как аргумент подоболочки apt-get download.
  • На начальном выводе подоболочки, используйте while цикл, что это разделяет вывод на строки, присвоенные переменной line —, который можно назвать чем-либо и является иначе не required— использование эти read команда.
  • Для каждой строки вывода, используйте эти grep команда с регулярным выражением Perl. включенный с флагом --perl-regexp, который использует положительный lookbehind вовлечение строки “ Depends: ” и только отображает подобранный текст с помощью флага --only-matching.
  • Наконец, переведите все символы новой строки в пробелы с помощью эти tr команда.
0
ответ дан 21 September 2019 в 09:16

Другие вопросы по тегам:

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