使用bash脚本WITHOUT wc命令获取文件字数?

时间:2018-04-13 15:11:13

标签: linux bash shell debian

是否有一种有效的方法可以使用bash脚本来计算指定文件中的字数而不使用wc命令?

最好是可以通过简单的循环来完成吗?

我无法想出办法,而且我已在Google上检查过的地方使用wc命令。

谢谢!

1 个答案:

答案 0 :(得分:0)

这个模糊代码依赖于trdd,并计算压缩的空白,这并不总是与单词的数量相同,但它并不遥远:

word_count() { tr -s '\n[:space:]'  ' ' |  tr -cd '[:space:]' | 
               dd of=/dev/null 2>&1 | tail -1 | (read a b ; echo $a ) ; }

考虑man bash中的字数,然后是实际的wc结果:

man bash | word_count
man bash | wc --words

输出:

46139
46139

在这种情况下,它们是相同的。但是word_count

  • 有空格但没有字母数字:

    printf ' \n' | word_count
    

    输出:

    1
    
  • 有一个词,但没有空格:

    printf 'foo' | word_count
    

    输出:

    0