Reputation: 2863
Note:
How to substitute this example string 123456789, to look like 123-456-789
#!/bin/sh
# trivial example
read number;
# monotically substitute '-' into string after first three and dix digits
Upvotes: 1
Views: 1012
Reputation: 359865
Without the use of sed
:
$ number=123456789
$ number=${number:0:3}-${number:3:3}-${number:6:3}
$ echo $number
123-456-789
Upvotes: 9
Reputation: 342263
one way with gawk
$ 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
Upvotes: -1