我有一长串的零和零:
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 ....
我可以很容易地得到它们之间的平均零数(只有总数/个数):
ones=$(grep -c 1 file.txt) lines=$(wc -l < file.txt) echo "$lines / $ones" | bc -l
但是如何获得字符串的长度为零之间的字符串?在上面的简短例子中,它将是:
3 5 5 2
编辑:对于最后一行为0的情况而言是固定的
容易在awk:
awk '/1/{print NR-prev-1; prev=NR;}END{if (NR>prev)print NR-prev;}'
在bash中也不难:
i=0 for x in $(<file.txt); do if ((x)); then echo $i; i=0; else ((++i)); fi done ((i)) && echo $i
原文地址:https://www.jb51.cc/bash/386747.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。