Как подставить строку в bash скрипт - PullRequest
1 голос
/ 26 декабря 2009

Примечание:

  • Баш 3.00

Как заменить строку этого примера 123456789 , чтобы она выглядела как 123-456-789

#!/bin/sh
# trivial example
read number;
# monotically substitute '-' into string after first three and dix digits 

Ответы [ 3 ]

8 голосов
/ 26 декабря 2009

Без использования sed:

$ number=123456789
$ number=${number:0:3}-${number:3:3}-${number:6:3}
$ echo $number
123-456-789
7 голосов
/ 26 декабря 2009
phone=`echo $phone | sed 's/\(...\)\(...\)/\1-\2-/'`
0 голосов
/ 26 декабря 2009

в одну сторону с глазком

$ echo "123456789" |awk  'BEGIN{FS=""}{ for(i=1;i<=NF;i+=3)s=s$(i)$(i+1)$(i+2)"-";sub(/-$/,"",s);print s } '
123-456-789

$ echo "123456789abcdef" | awk  'BEGIN{FS=""}{ for(i=1;i<=NF;i+=3)s=s$(i)$(i+1)$(i+2)"-";sub(/-$/,"",s);print s } '
123-456-789-abc-def
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...