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

Исходное сообщение
"Парсер значения"

Отправлено VladiS , 05-Июн-17 13:48 
Привет, камрады!

root@:~ # geli list
Geom name: vtbd0p4.eli
...
1. Name: vtbd0p4.eli
   Mediasize: 6441889792 (6.0G)
   Sectorsize: 4096
   Mode: r0w0e0
Consumers:
1. Name: vtbd0p4
   Mediasize: 6441892352 (6.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 541696
   Mode: r1w1e1

Пытаюсь присвоить переменной значение 6441892352.
geli list | sed '/Name: vtbd0p4.eli/,+2d' | grep 'Mediasize' | sed 's/[A-z,:, ,)]//g; s/(.*)//'

Но что-то мне подсказывает, что я редкостный изврат. :-)


Содержание

Сообщения в этом обсуждении
"Парсер значения"
Отправлено ford1813 , 05-Июн-17 14:04 
>[оверквотинг удален]
> 1. Name: vtbd0p4
>    Mediasize: 6441892352 (6.0G)
>    Sectorsize: 512
>    Stripesize: 0
>    Stripeoffset: 541696
>    Mode: r1w1e1
> Пытаюсь присвоить переменной значение 6441892352.
> geli list | sed '/Name: vtbd0p4.eli/,+2d' | grep 'Mediasize' | sed 's/[A-z,:,
> ,)]//g; s/(.*)//'
> Но что-то мне подсказывает, что я редкостный изврат. :-)

Молодец, продолжай нас информировать дальше.


"Парсер значения"
Отправлено михалыч , 05-Июн-17 19:53 
> Но что-то мне подсказывает, что я редкостный изврат. :-)

да ладно! вы на себя наговариваете.. или льстите )))

| sed '/Name: vtbd0p4.eli/,+2d' | grep 'Mediasize' | sed 's/[A-z,:, ,)]//g; s/(.*$//'
| sed '/Name: vtbd0p4.eli/,+2d' | grep 'Mediasize' | sed -r 's/(^.*: )//; s/( \(.*$)//'
| sed '/Name: vtbd0p4.eli/,+2d' | grep 'Mediasize' | sed -r 's/(^.*: )(.*)( \(.*$)/\2/'
| perl -0777 -pe 's/(.*Mediasize:\s)(\d*).*/$2/s'

последнее сработает в том случае, если в листинге geli
далее не будет больше никаких Mediasize
иначе жадная регулярка всё пожрёт до последнего Mediasize

ну тогда можно так извратиться
| perl -0777 -pe 's/(.*vtbd0p4\s+Mediasize:\s)(\d*)\s.*/$2/s'

короче, извращайтесь на здоровье ))


"Парсер значения"
Отправлено universite , 08-Июн-17 19:17 
> Привет, камрады!
> root@:~ # geli list

...
> Пытаюсь присвоить переменной

Так по-проще...


var=$(geli list | egrep -A 1 "Name: vtbd0p4.eli" | awk '/Mediasize/ { print $2; }')