Вопрос по linux, bash – Вставить символы в строку в Bash?

25

Мне нужно повернуть строку"125959" в"12:59:59".

Очевидно, что строка - это время, поэтому регулярные выражения здесь не очень хороши.

хороший вопрос! 010407 :) Andrew Mcdonald
unstableme.blogspot.in/2009/09/… perilbrain
Как твое время01:04:07 написано ???010407 или же147 ?? perilbrain

Ваш Ответ

2   ответа
47

time=125959
echo ${time:0:2}:${time:2:2}:${time:4:2}
Гун ответ. Для получения дополнительной информации см .:stackoverflow.com/a/1336245/110488
15

мне нравитсяsed:

time=125959
sed -e "s/\(..\)\(..\)\(..\)/\1:\2:\3/" <<< "$time"
  • You can refine this by replacing . with [[:digit:]]
  • Read about <<< (Here strings) in man bash(1)
Если вы используете GNU sed, попробуйтеsed -e 's/../:&/2g' <<< "$time

Похожие вопросы