【问题标题】:UNIX wc -l with line length restriction具有行长限制的 UNIX wc -l
【发布时间】:2011-03-08 16:58:07
【问题描述】:

我需要计算文件中的行数,在 UNIX shell 脚本中,但我需要 80 个字符以下的行数,如果超过 80 个字符,则将其计为多行。

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

【问题讨论】:

    标签: shell unix lines wc


    【解决方案1】:

    使用fold 换行 > 80 个字符,然后将输出通过管道传输到wc,例如

    $ fold file | wc -l
    

    【讨论】:

    • 太棒了!感谢您的快速回复!
    【解决方案2】:

    这可能会做你想要的:

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

    【讨论】:

    • 您不需要捕获组。 sed -r 's/.{80}/&\n/g'
    【解决方案3】:

    虽然fold 答案最适合unix 方式:

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

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      相关资源
      最近更新 更多