парсинг строки без "костыля"

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

парсинг строки без "костыля"

Непрочитанное сообщение Гость » 2017-04-20 19:46:41

Например есть вывод команды:

Код: Выделить всё

VBoxManage list vms
"test1" {07948657-eacf-44c8-987e-44d2708f1f13}
"external" {ce0855a2-3d41-4526-a1f6-d6c63f6bface}
"test2" {8326e080-d1df-4d6b-b074-010bb3bf553d}
"test" {03aeac0c-7e28-48a0-b088-10b793d6f108}



Если надо достать uid, то сделал в лоб:
VBoxManage list vms | awk '{ print $2 }' | awk -F { '{ print $2 }' | awk -F } '{ print $1 }'

Вроде все работает, но для общего развития - как-то можно что ли красивее достать этот uid без этого вот костыля?

Код: Выделить всё

| awk -F { '{ print $2 }' | awk -F } '{ print $1 }'

т.е. в общем виде как быстро извлечь uid из строки {07948657-eacf-44c8-987e-44d2708f1f13}?

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1126
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

парсинг строки без "костыля"

Непрочитанное сообщение xM » 2017-04-21 0:23:45

Есть много старых добрых shell команд. К примеру, cut:

Код: Выделить всё

| cut -wf 2

Если надо убрать скобки, то добавляем после ещё одну старую добрую команду tr:

Код: Выделить всё

| tr -d "{}"
IT voodoo blog https://kostikov.co


BlitzKrieg
ст. прапорщик
Сообщения: 530
Зарегистрирован: 2008-03-13 12:02:59

парсинг строки без "костыля"

Непрочитанное сообщение BlitzKrieg » 2017-04-21 22:49:15

sed -n 's/.*\({.*}\)/\1/p'
sed -n 's/.*{\(.*\)}/\1/p'

Аватара пользователя
bagas
лейтенант
Сообщения: 899
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

парсинг строки без "костыля"

Непрочитанное сообщение bagas » 2017-04-27 9:02:44

А так?
awk -F "{|}" '{ print $2 }'
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.


Вернуться в «SHELL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя