输入文件的平均字长

时间:2013-12-20 03:35:11

标签: shell unix

如果我使用

wc -m filename 

它将生成字符数

wc -w filename

将生成多个单词

如果我通过划分字符数/字数

来使用此信息

它会给我误导结果,因为字符数将包括空格和标点符号

任何建议?

2 个答案:

答案 0 :(得分:3)

我在没有编写脚本的情况下提出的解决方案是通过这样的几个命令来管理它。

<filename  tr -d " \t\n\r\.\?\!" | wc -m

这可以删除所有间距,例如新行,制表符和常规间距。包含任何其他标点符号(如冒号)的更严格的tr命令可以添加到列表中,例如\:

希望有助于

答案 1 :(得分:2)

减去你不想要的字符

 chars=$(tr -dc '[:alnum:]' < filename | wc -c)
 words=$(cat filename | wc -c)

现在你算一下。我输入wc以避免输出中的额外“文件名”

printf "%.2f" $(echo "$chars/$words" | bc -l)

编辑:感谢宝马