使用bash脚本计算零之间的数字

时间:2014-08-19 09:43:56

标签: arrays bash unix awk

使用bash脚本,我只想计算零之间的数字。是否可以使用awk?对不起,我是新来的。

5000000000009228247152000000000000000000003

5000000000006338293700000000000000000000001

3 个答案:

答案 0 :(得分:2)

grep -Po '0+\K[^0]+(?=0)'

给你:

9228247152
63382937

修改

如果事情可以在一个过程中轻松完成(这里是awk),我就不会开始第二个过程。

带有计数和文字的单行内容:

awk -F'0+' 'NF>2{for(i=2;i<NF;i++)printf "text:%s count:%d\n",$i,length($i)}'

给出:

text:9228247152 count:10
text:63382937 count:8

awk one-liner只有计数:

awk -F'0+' 'NF>2{for(i=2;i<NF;i++)print length($i)}'

给出:

10
8

答案 1 :(得分:0)

使用sed

echo 5000000000009228247152000000000000000000003 | \
   sed -n -r -e 's/0+([^0]+)0+/\1/' | wc -m

答案 2 :(得分:0)

$ grep -oP '0+\K[1-9]+(?=0+)' file
9228247152
63382937

计算位数,

$ grep -oP '0+\K[1-9]+(?=0+)' file | awk -v FS="" '{print NF}'
10
8