是否有一种有效的方法可以使用bash
脚本来计算指定文件中的字数而不使用wc
命令?
最好是可以通过简单的循环来完成吗?
我无法想出办法,而且我已在Google上检查过的地方使用wc
命令。
谢谢!
答案 0 :(得分:0)
这个模糊代码依赖于tr
和dd
,并计算压缩的空白,这并不总是与单词的数量相同,但它并不遥远:
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