РЕШЕНО - Вывести список установленных пакетов в строку (Просмотр списка установленных пакетов одной строкой)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Institut
Сообщения: 281
ОС: mint

РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Institut »

Добрый день. Возникла необходимость просмотреть и записать на флешку, что-бы перенести в другое место, список установленных пакетов.
Например.
Делаю так

Код: Выделить всё

pacman -Q | grep virtualbox | sed ':a;N;$!ba;s/\n/ /g'

"Выход"

Код: Выделить всё

virtualbox 5.2.0-1 virtualbox-ext-oracle 5.2.0-1 virtualbox-guest-iso 5.2.0-1 virtualbox-host-dkms 5.2.0-1

Но цифры мне не нужны, только имена. Переделал так

Код: Выделить всё

pacman -Q | grep virtualbox | awk '{ print $1 }' | sed ':a;N;$!ba;s/\n/ /g'

"Вывод"

Код: Выделить всё

virtualbox virtualbox-ext-oracle virtualbox-guest-iso virtualbox-host-dkms

Вроде то, что нужно. Вопрос - а можно-ли от awk избавиться, только через sed сделать?
Количество пакетов везде разное.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Bizdelnick »

А как выглядит необработанный вывод pacman -Q?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Institut »

Код: Выделить всё

pacman -Q | grep virtualbox
virtualbox 5.2.0-1
virtualbox-ext-oracle 5.2.0-1
virtualbox-guest-iso 5.2.0-1
virtualbox-host-dkms 5.2.0-1


Списки пакетов идут строками, ищу только нужные мне пакеты.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Vascom »

Можно вместо awk использовать cut -d " " -f1
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение SLEDopit »

Institut писал(а):
07.11.2017 20:56
Вопрос - а можно-ли от awk избавиться, только через sed сделать?
Можно заодно и от grep'а избавиться:

Код: Выделить всё

pacman -Q | sed -n '/virtualbox/{s/ .*//;H};${g;s/\n/ /g;p}'

С вашим примером входных данных это выглядит примерно так:

Код: Выделить всё

$ cat 222
dhskhksjdhk 5.2.0-1
virtualbox 5.2.0-1
virtualbox-ext-oracle 5.2.0-1
virtualbox-guest-iso 5.2.0-1
dhsjkdhjsk 5.2.0-1
virtualbox-host-dkms 5.2.0-1
$ sed -n '/virtualbox/{s/ .*//;H};${g;s/\n/ /g;p}' 222
 virtualbox virtualbox-ext-oracle virtualbox-guest-iso virtualbox-host-dkms
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Bizdelnick »

Как вариант: pacman -Q | sed -nr 's/(^virtualbox\S*).*/\1/;$!T;$Ta;H;:a;${g;y/\n/ /;p}'
Хотя с одним awk проще: pacman -Q | awk '/^virtualbox/{printf "%s ", $1 }; END{ print "" }'
Upd. Вариант SLEDopitа с sed лучше моего.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Alexxx »

Как вариант:

Код: Выделить всё

a=$(pacman -Qq | grep virtualbox)
echo $a

Можно также "pacman -Qsq virtualbox" -- дольше отрабатывает только.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение SLEDopit »

Alexxx писал(а):
08.11.2017 15:19

Код: Выделить всё

a=$(pacman -Qq | grep virtualbox)
echo $a
тогда уж

Код: Выделить всё

echo $(pacman -Qq | grep virtualbox)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: РЕШЕНО - Вывести список установленных пакетов в строку

Сообщение Institut »

pacman -Q | sed -n '/virtualbox/{s/ .*//;H};${g;s/\n/ /g;p}'

Ага, оно работает. Коротко и сердито. Спасибо.
Spoiler
И понимаешь для себя, что ещё надо много чему учиться.
Спасибо сказали:
Ответить