linux中shell 一个字符拆分

作者:简简单单 2014-03-22

字符:12345abcde
拆分成:
1
2
3
4
5
a
b
c
d
e

方法

echo 12345abcde | awk -F ” ‘{for(i=1;i<=NF;i++)print $i}’

echo 12345abcde | sed ‘s/./&n/g’

echo 12345abcde | grep -Po ‘.’

echo “12345abcde” | fold  -w1

然后

求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×…×999×1000

[root@node4 ~]# cat t.sh
#!/bin/bash
export a=1
for i in `seq 1 1000`
do
a=`expr $a * $i`
done
echo $a

[root@node4 ~]# sh t.sh | awk -F ” ‘{for(i=1;i<=NF;i++) ++S[$i] } END{for (i in S) if( i == 0 ) print i ” “S[i]}’
0 472

那0到9呢

[root@node4 ~]# sh t.sh | awk -F ” ‘{for(i=1;i<=NF;i++) ++S[$i] } END{for (i in S) print i ” “S[i]}’
4 229
5 213
6 231
7 217
8 257
9 246
0 472
1 239
2 248
3 216

查询一个字符串中字符 B 所在位子

[root@node4 ~]# cat aa
dfgsBfrgB
frgfvregB
B
grg
fsdvgbBef
Bfrg

[root@node4 ~]# awk -F ” ‘{for(i=1;i<=NF;i++)S[i]=$i ;for (i in S) if(S[i] == “B”)print i” ” S[i] ” row ” NR;delete S}’ aa
5 B row 1
9 B row 1
10 B row 2
1 B row 3
7 B row 5
1 B row 6

相关文章

精彩推荐