URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10222
[ Назад ]

Исходное сообщение
"Нужно оставить левую часть списка от последнего символа '-'"

Отправлено universite , 01-Май-18 04:24 
Есть список вида:

...
php56-xsl-5.6.19
php56-zip-5.6.19
php56-zlib-5.6.19
pkgconf-1.3.7,1
png-1.6.21
popt-1.16_1
...

Нужно оставить только левую часть от последнего символа "-"


Содержание

Сообщения в этом обсуждении
"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено михалыч , 01-Май-18 05:26 
>[оверквотинг удален]
> ...
> php56-xsl-5.6.19
> php56-zip-5.6.19
> php56-zlib-5.6.19
> pkgconf-1.3.7,1
> png-1.6.21
> popt-1.16_1
> ...
>

> Нужно оставить только левую часть от последнего символа "-"

pkg_info сортируешь?


echo "php56-zlib-5.6.19" | perl -pe 's/([^-])-.*/$1/'
echo "php56-zlib-5.6.19" | sed 's/\([^-]\)-.*/\1/'

PS
или я не совсем правильно понял или одно из двух
может имелось ввиду
perl -pe 's/(.*)-.*/$1/'
sed 's/\(.*\)-.*/\1/'

' последнего символа "-" '
а это смотря откуда считать

потрудитесь выражаться яснее ))
и вообще, пояснительные выражения объясняют тёмные мысли (С) /Козьма Прутков/ )))


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено universite , 01-Май-18 18:32 

> PS
> или я не совсем правильно понял или одно из двух
> может имелось ввиду
> perl -pe 's/(.*)-.*/$1/'
> sed 's/\(.*\)-.*/\1/'
> ' последнего символа "-" '
> а это смотря откуда считать

Текст в списке идет слева направо.
Хотелось бы на awk.


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено Аноним , 01-Май-18 10:17 
man bash
/Parameter Expansion

$ declare -a Var=(php56-xsl-5.6.19 php56-zip-5.6.19); echo ${Var[*]%-*};
php56-xsl php56-zip


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено universite , 01-Май-18 18:33 
> man bash
> /Parameter Expansion
>
$ declare -a Var=(php56-xsl-5.6.19 php56-zip-5.6.19); echo ${Var[*]%-*}; 
> php56-xsl php56-zip

башизм. Хотелось бы выполнения на sh.


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено anonymous , 01-Май-18 22:24 
> башизм. Хотелось бы выполнения на sh.

awk не пойдет?
somecommand | awk '{print $NF}'


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено anonymous , 01-Май-18 22:30 
>> башизм. Хотелось бы выполнения на sh.
> awk не пойдет?
>  somecommand | awk '{print $NF}'

Ой, простите, вам же всё кроме последнего.


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено anonymous , 01-Май-18 22:33 
>>> башизм. Хотелось бы выполнения на sh.
>> awk не пойдет?
>>  somecommand | awk '{print $NF}'
> Ой, простите, вам же всё кроме последнего.

Хотя если это sed'у передать..


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено PereresusNeVlezaetBuggy , 02-Май-18 00:31 
>[оверквотинг удален]
> ...
> php56-xsl-5.6.19
> php56-zip-5.6.19
> php56-zlib-5.6.19
> pkgconf-1.3.7,1
> png-1.6.21
> popt-1.16_1
> ...
>
> Нужно оставить только левую часть от последнего символа "-"

Не совсем понятно. Может, «до последнего символа»? Тогда так:

while read line; do echo ${line%-*}; done


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено JL2001 , 02-Май-18 01:23 
>[оверквотинг удален]
> ...
> php56-xsl-5.6.19
> php56-zip-5.6.19
> php56-zlib-5.6.19
> pkgconf-1.3.7,1
> png-1.6.21
> popt-1.16_1
> ...
>
> Нужно оставить только левую часть от последнего символа "-"

echo php56-xsl-5.6.19 |grep -o "^.*-" |grep -o "^.*[^-]"
php56-xsl

как вывести список полинейно - в гугле
результат перенаправить в файл построчно


"Нужно оставить левую часть списка от последнего символа '-'"
Отправлено universite , 02-Май-18 01:50 

> echo php56-xsl-5.6.19 |grep -o "^.*-" |grep -o "^.*[^-]"
> php56-xsl

Работает. Спс.
Я забыл, что grep умеет по маске оставлять нужное.

> как вывести список полинейно - в гугле
> результат перенаправить в файл построчно

Это не требуется.