LINUX.ORG.RU

снова SED


0

0

Всем привет,
извините, если кому наступил на больной мозоль, но не могу никак справиться с регулярным выражением.

time='114m:41.587s'

time_m=`echo $time|sed '/^\([0-9]*\)m.*/s//\1/'`
time_s=`echo $time|sed '/.*\([0-9]*\)\..*/s//\1/'`

let "time = time_m * 60 + time_s"
echo "time= $time m= $time_m s= $time_s"

минуты считает правильно(time_m), а секунды - нет.

Подскажите пожалуйста в чем я не прав, по идее все должно работать

anonymous

Ответ на: комментарий от sdio

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

даже не знаю, что делать, придется программу писать


anonymous
()
Ответ на: комментарий от anonymous

Спасибо!
оказалось не так сложно, правда немного навернуто:

time_m=`echo $time|sed -n '/m:/p' | sed 's/^\([0-9]*\)m:.*/\1/'`
time_s=`echo $time|sed 's/^\([0-9]*\)m://' | sed 's/\([0-9]*\)\..*/\1/'`
let "time = time_m * 60 + time_s"
echo "time= $time m= $time_m s= $time_s"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.