Есть, например, такой вывод
# 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»?