Как я использую 'sed' для лишения информации о версии списка пакетов?

Результатом, например, поиска является список> /tmp/lista.txt:

vlc-2.2.1-195.1.x86_64
pidgin-2.10.11-4.3.x86_64
qmmp-1.0.5-78.1.x86_64
spotify-client-0.9.17.8.gd06432d.31-1.x86_64

Я использую:

cat /tmp/lista.txt | sed 's/[^a-z]*//g'

Но я хочу, чтобы результат был:

vlc 
pidgin
qmmp
spotify-client
1
задан 19 January 2016 в 03:06

2 ответа

Я устанавливаю это, это не возможно сделать практическим способом. Не с Вашим списком.

проблема отрезания чисел или просто выбора текста, или безотносительно версии петли Вы хотите получить inolved с, дефисы и числа являются совершенно допустимыми символами в пакете имена . Выполненный dpkg -l | awk '$2~/-[0-9]/'. Я вижу ~622 таких пакета на своих 14,04 рабочих столах. И не, это не целые номера версий.

Позволяют нам посмотреть приблизительно на openjdk пакеты:

openjdk-6-jre:amd64             6b37-1.13.9-1ubuntu0.14.04.1
openjdk-6-jre-headless:amd64    6b37-1.13.9-1ubuntu0.14.04.1
openjdk-6-jre-lib               6b37-1.13.9-1ubuntu0.14.04.1
openjdk-7-jdk:amd64             7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre:amd64             7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre-headless:amd64    7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre-lib               7u91-2.6.3-0ubuntu0.14.04.1

я предполагаю, что, если бы они находятся в Вашем списке, они отобразились бы как:

openjdk-6-jre:amd64-6b37-1.13.9-1ubuntu0.14.04.1
openjdk-6-jre-headless:amd64-6b37-1.13.9-1ubuntu0.14.04.1
openjdk-6-jre-lib-6b37-1.13.9-1ubuntu0.14.04.1
openjdk-7-jdk:amd64-7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre:amd64-7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre-headless:amd64-7u91-2.6.3-0ubuntu0.14.04.1
openjdk-7-jre-lib-7u91-2.6.3-0ubuntu0.14.04.1

Поэтому, возможно, теперь Вы видите, почему их трудно извлечь. При срывании чего-нибудь мимо числа Вы заканчиваете тем, что не были способны отличать несколько видов пакета.

Мой совет состоит в том, чтобы получить лучший список с надлежащим разделителем, которые не позволяются на имена пакета. Пробелы, запятые, вкладки, и т.д.

3
ответ дан 3 December 2019 в 06:40

Вы могли соответствовать дефису, сопровождаемому цифрой и заменой это и все после этого

$ sed 's/-[0-9].*//' lista.txt 
vlc
pidgin
qmmp
spotify-client
2
ответ дан 3 December 2019 в 06:40

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

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