LinuxForum.Fans
Тема

sed

Автор: moshell 5 сообщений 3290 просмотров
#293555

нужно из формата времени
[0-9]:[0-9][0-9]:[0-9][0-9]
сделать
[0-9][0-9]:[0-9][0-9]:[0-9][0-9]

то есть. там где было, например
8:27:35
нужно сделать сделать
08:27:35

sed -e 's/\<\([0-9]:[0-9][0-9]:[0-9][0-9]\)\>/\1/'
не догоню что надо сделать с единичкой, чтоб вставить нуль перед шаблоном


пс. структура файла такова, что начиная с НУЛЯ (24) часов и до 9 утра включительно, время идет таким вот форматом(

#293558
text
sed -e 's/\<\([0-9]:[0-9][0-9]:[0-9][0-9]\)\>/0\1/'

[console]
lupo@gentoo-laptop /tmp % cat time.txt
8:27:35
18:27:35
2:35:59
23:59:59

lupo@gentoo-laptop /tmp % sed -e 's/\<\([0-9]:[0-9][0-9]:[0-9][0-9]\)\>/0\1/' time.txt
08:27:35
18:27:35
02:35:59
23:59:59
[/console]

#293561

точно. все так просто)
спасибо

#293570

moshell, только учти, что \< это гнутое расширение... на около-posix'е будет что-то вроде этого:
sed -e 's/\(^\|[^0-2]\)[0-9]:[0-9][0-9]:[0-9][0-9]/0&/'

#293581

да я не портирую никуды.
взял распечатку звонков в xml. вот приводил в норм вид.

Войдите или зарегистрируйтесь, чтобы ответить.