bash – 获取零长度(由中断)

前端之家收集整理的这篇文章主要介绍了bash – 获取零长度(由中断)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一长串的零和零: @H_403_1@0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 ....

我可以很容易地得到它们之间的平均零数(只有总数/个数):

@H_403_1@ones=$(grep -c 1 file.txt) lines=$(wc -l < file.txt) echo "$lines / $ones" | bc -l

但是如何获得字符串的长度为零之间的字符串?在上面的简短例子中,它将是:

@H_403_1@3 5 5 2
编辑:对于最后一行为0的情况而言是固定的

容易在awk:

@H_403_1@awk '/1/{print NR-prev-1; prev=NR;}END{if (NR>prev)print NR-prev;}'

在bash中也不难:

@H_403_1@i=0 for x in $(<file.txt); do if ((x)); then echo $i; i=0; else ((++i)); fi done ((i)) && echo $i

猜你在找的Bash相关文章