The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]



"Нужно оставить левую часть списка от последнего символа '-'"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от universite (ok) on 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
...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от михалыч (ok) on 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/'

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от universite (ok) on 01-Май-18, 18:32 

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Нужно оставить левую часть списка от последнего символа '-'"  +1 +/
Сообщение от Аноним (??) on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от universite (ok) on 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.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от anonymous (??) on 01-Май-18, 22:24 
> башизм. Хотелось бы выполнения на sh.

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от JL2001 (ok) on 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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Нужно оставить левую часть списка от последнего символа '-'"  +/
Сообщение от universite (ok) on 02-Май-18, 01:50 

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

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

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

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьПоддержатьВебмастеруГИД  
Hosting by Ihor