2011-03-08 38 views
2

我需要在UNIX shell脚本中统计文件中的行数,但我需要80个字符以下的行数,如果有超过80个字符,则需要count它作为多行。具有行长限制的UNIX wc -l

我知道wc -l统计行数,而且我知道没有任何选项可以指定这种事情,那么我该怎么做呢?

回答

8

使用fold到输出断行> 80个字符,然后管wc,例如

$ fold file | wc -l 
+1

+1:这比我的sed滥用好很多 – Erik 2011-03-08 17:05:29

+0

@Erik:嘿 - 无论什么作品。 ;-) – 2011-03-08 17:06:37

+0

太棒了!感谢您的快速回复! – skeggse 2011-03-08 17:12:16

1

这可能会做你想要什么:

sed -r 's,(.{80}),\1\n,g' filename | wc -l 
+0

你并不需要一个捕获组。 'sed -r's /。{80} /&\ n/g'' – 2011-03-08 17:29:02

0

虽然fold答案最符合UNIX方式:

awk '{n += 1+int(length/80)} END {print n}' filename 
相关问题