【问题标题】:Get average words per file获取每个文件的平均字数
【发布时间】:2012-02-05 17:09:52
【问题描述】:

如果我有一个包含文本文件的文件夹,如何使用 Bash 命令获取每个文件的平均字数?

我知道我可以使用 wc -w 来获取每个文件的字数,但我不确定如何获取所有文件的总字数,然后将该数字除以文本文件数

【问题讨论】:

  • wc -w * | grep total 将让您开始...不知道从那里去哪里。祝你好运!

标签: linux bash terminal


【解决方案1】:

这递归地遍历文件系统并计算所有单词和文件。最后将总字数除以文件数:

find . -type f -exec wc -w {} \; | awk '{numfiles=numfiles+1;total += $1} END{print total/numfiles}'

【讨论】:

    【解决方案2】:

    您可以通过以下方式获得总字数:

    cat *.txt | wc -w
    

    文件编号:

    ls *.txt | wc -l
    

    然后你可以划分它们。

    【讨论】:

      【解决方案3】:

      这只是一个建议。您可以使用LoopsVariable Assignment

      【讨论】:

        【解决方案4】:

        黄的解决方案非常好,但会在任何目录上发出错误。除法有点麻烦,因为 shell 中的所有算术都是整数。这是一个执行您想要的脚本:

        #!/bin/sh 对于 * 中的文件;做 测试 -f "$file" ||继续 c=$( wc -w "$file" | awk '{print $1}' ) : $(( 总计 += $c )) : $(( 计数 += 1 )) 完毕 echo $total $count 10k / p |直流| sed 's/0*$//'

        但 bunting 的 awk 解决方案是可行的方法。

        【讨论】:

          猜你喜欢
          • 2018-09-12
          • 2021-01-30
          • 1970-01-01
          • 1970-01-01
          • 2018-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多