Извлечение подстроки из строки

Иногда приходится достать из вывода команды какую-либо подстроку, например uid:

VBoxManage list vms
"external" {ce0855a2-3d41-4526-a1f6-d6c63f6bface}
"web" {8326e080-d1df-4d6b-b074-010bb3bf553d}
"sip2" {696527a4-b87b-474c-a12b-83475d73d799}
"sip" {23bf91db-e871-42ae-876b-d68717b0fa6c}
"testVM" {69dcd4c7-3902-403a-af75-f9a8238dec6a}

 

 

Обычно по-привычке делаю как-то так:

VBoxManage list vms | awk '{ print $2 }' | awk -F { '{ print $2 }' | awk -F } '{ print $1 }'

 

Такая конструкция работает (| awk -F { '{ print $2 }' | awk -F } '{ print $1 }'), но выглядит "коряво".

Прозрачнее использовать такую команду:

VBoxManage list vms | awk '{ print $2 }' | tr -d "{}"

 

На выходе получаем чистый uid.

Please publish modules in offcanvas position.