LINUX.ORG.RU

Регулряное выражение для удаления номера версии.

 ,


1

2

Есть, например, такой вывод

# genlop -ln | grep dpi
     Tue Jul 18 13:38:56 2017 >>> media-fonts/font-bh-75dpi-1.0.3
     Tue Jul 18 13:42:19 2017 >>> media-fonts/font-bitstream-75dpi-1.0.3
     Tue Jul 18 13:42:53 2017 >>> media-fonts/font-adobe-100dpi-1.0.3
     Tue Jul 18 13:43:08 2017 >>> media-fonts/font-bh-lucidatypewriter-100dpi-1.0.3
     Tue Jul 18 13:43:46 2017 >>> media-fonts/font-adobe-utopia-75dpi-1.0.4
     Tue Jul 18 13:47:10 2017 >>> media-fonts/font-bitstream-100dpi-1.0.3
...

Для удаления данных о дате и номере версии в конце для пакетов отличных от шрифтов, меня вполне устраивает такое регулярное выражение

sed -e 's/^.*> //' | sed s/-[0-9].*$//g

, но в случае вышеуказанных пакетов отрезаются и нужные мне "-75dpi", "-100dpi".

Для прочих пакетов номер версии может состоять из нескольких блоков разделённых "-" и в разном формате, поэтому отрезание с конца до первого "-" не подойдёт.

Как подправить регулярку sed s/-[0-9].*$//g так, чтобы она удаляла подстроку после "-", содержащую цифры, но при этом не трогала подстроку, содержащую подстроку «dpi»?

★★★★★

Для примера, номера версий могут быть такими:

-1.0.4
-0.26_p20171104
-1.2.2-r1
-3.02_alpha07-r1
-20161130.3.30.2
-1.420.200_rc-r1
grem ★★★★★
() автор топика
Ответ на: комментарий от Gary

Этот вопрос порождён вот этой темой.

То есть хочу список имён пакетов, собранных начиная с какого-то момента. Без номеров версий.

То есть сейчас регулярка от media-fonts/font-bh-75dpi-1.0.3 оставляет media-fonts/font-bh, а нужно, чтобы оставляла media-fonts/font-bh-75dpi, но при этом отрезала и номера версий для примеров выше.

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от grem

То есть хочу список имён пакетов, собранных начиная с какого-то момента. Без номеров версий.

eix-installed-after?

Gary ★★★★★
()
Ответ на: комментарий от Gary

Странно, он требует предварительного вызова eix-update? Если да, то это очень долго.

Набрал eix-installed-after darktable-2.4.0 и он мне ничего не вывел. Хотя с тех пор пакетов 300 уже переустановилось.

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

Странно, он требует предварительного вызова eix-update?

Конечно, для работы всех утилит eix нужна актуальная база. Нужно вызвать хотя бы один раз.

eix-installed-after darktable-2.4.0

eix-installed-after media-gfx/darktable

Посмотри eix-installed-after -h

Gary ★★★★★
()
s/.*> (.*dpi)-.*/\1/g

Как-то так.

ashot ★★★★
()
Ответ на: комментарий от grem

Если да, то это очень долго.

Ты вообще eix-ом не пользуешься? Если пользуешься, то eix-update надо выполнять только после обновления portage - то есть если ты вместо emerge --sync делаешь eix-sync, то всё УЖЕ окей

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

у генлопа есть что-то кроме -t ? Это интересно.

Bruce_Lee ★★
()

Скажите, а qatom из portage-utils вам не подойдет, надо именно регуряку ??

$ qatom -F '%{CATEGORY}/%{PN}' media-fonts/font-bh-lucidatypewriter-100dpi-1.0.3
media-fonts/font-bh-lucidatypewriter-100dpi
gvtlor
()
Ответ на: комментарий от anonymous

https://www.regexpal.com/?fam=99846

и

s/.*> (.*dpi)-.*/\1/g

Как-то так. ashot,

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

Ты вообще eix-ом не пользуешься? Если пользуешься, то eix-update надо выполнять только после обновления portage - то есть если ты вместо emerge --sync делаешь eix-sync, то всё УЖЕ окей

Pinkbyte, пользуюсь конечно, но в рамках пересборки мира не хотелось это делать. К счастью, всё обошлось ручным прерыванием сборки с выключением на ночь и последующим запуском с параметром "--resume". В процессе сборки с новым профилем наткнулся только на один баг с ошибкой конфигурации пакета libgpg-error, но сегодня снова обновил дерево по завершению пересборки мира и этот пакет тоже после этого обновился (к тому моменту исправили ошибку). Заняло это удовольтствие на моём старом core i3 примерно сутки, что, однако, не мешало пользоваться браузером всё это время.

На всякий случай ещё бы ядро пересобрать с новым компилятором и профилем.

grem ★★★★★
() автор топика
Ответ на: комментарий от gvtlor

Спасибо, нужно посмотреть, тоже не помешает, может быть так даже проще будет.

grem ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.