Есть список вида:
...
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
...Нужно оставить только левую часть от последнего символа "-"
>[оверквотинг удален]
> ...
> 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/'' последнего символа "-" '
а это смотря откуда считатьпотрудитесь выражаться яснее ))
и вообще, пояснительные выражения объясняют тёмные мысли (С) /Козьма Прутков/ )))
> PS
> или я не совсем правильно понял или одно из двух
> может имелось ввиду
> perl -pe 's/(.*)-.*/$1/'
> sed 's/\(.*\)-.*/\1/'
> ' последнего символа "-" '
> а это смотря откуда считатьТекст в списке идет слева направо.
Хотелось бы на awk.
man bash
/Parameter Expansion$ declare -a Var=(php56-xsl-5.6.19 php56-zip-5.6.19); echo ${Var[*]%-*};
php56-xsl php56-zip
> man bash
> /Parameter Expansion
>$ declare -a Var=(php56-xsl-5.6.19 php56-zip-5.6.19); echo ${Var[*]%-*};
> php56-xsl php56-zipбашизм. Хотелось бы выполнения на sh.
> башизм. Хотелось бы выполнения на sh.awk не пойдет?
somecommand | awk '{print $NF}'
>> башизм. Хотелось бы выполнения на sh.
> awk не пойдет?
> somecommand | awk '{print $NF}'Ой, простите, вам же всё кроме последнего.
>>> башизм. Хотелось бы выполнения на sh.
>> awk не пойдет?
>> somecommand | awk '{print $NF}'
> Ой, простите, вам же всё кроме последнего.Хотя если это sed'у передать..
>[оверквотинг удален]
> ...
> 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
>[оверквотинг удален]
> ...
> 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как вывести список полинейно - в гугле
результат перенаправить в файл построчно
> echo php56-xsl-5.6.19 |grep -o "^.*-" |grep -o "^.*[^-]"
> php56-xslРаботает. Спс.
Я забыл, что grep умеет по маске оставлять нужное.> как вывести список полинейно - в гугле
> результат перенаправить в файл построчноЭто не требуется.