Input string:
1234 5678
o/p required:
1
2
3
4
5
6
7
8
Using -w option of Linux fold (wrap each input line to fit in specified width)
$ echo "1234 5678" | fold -w1
Awk solution : Make field separator (FS) as NULL so that each character represents a field
$ echo "1234 5678" | awk 'BEGIN{FS=""}{for(i=1;i<=NF;i++)print $i}'
Using bash:
#!/bin/sh
str="1234 5678"
while [ -n "$str" ]
do
printf "%c\n" "$str"
str=${str#?}
done
Using sed (Using & as matched string)
$ echo "1234 5678" | sed 's/[0-9 ]/&\n/g'
3 comments:
cat "1234 5678"|grep -o -P "."
or
grep -o -P "."
@Paul Dorman, thanks for the solution using perl regexp with grep.
-o is a very useful option with grep to print only the matching part.
var="1234 5678"
set --
while case $var in '' ) break;; esac; do
set -- ${1+"$@"} "${var%${var#?}}"
var=${var#?}
done
printf '%c\n' "$@"
Post a Comment