我已经使用wc
命令编写了程序,但我想知道如何在不wc
使用 shell 脚本的文件中使用的情况下计算行数、单词数和字符数。
答案1
计算字节数(如wc -c
)
< file LC_ALL=C tr -c '\n' '[\n*]' | grep -c '^'
要计算换行符的数量(如wc -l
):
< file LC_ALL=C tr -cd '\n' | grep -c '^'
对于单词(如wc -w
),假设 POSIX 兼容,tr
如 FreeBSD(而不是 GNU),并假设文件不包含非法字节序列:
< file tr -cs '[:space:]' '[x*]' | tr -cs x '[\n*]' | grep -c x
对于字符(如wc -m
),具有相同的限制:
< file tr -c '\n' '[\n*]' | grep -c '^'
关于输出:
printf '\0foo\u2006and \r\fbar\nbaz'
它们分别给出 20、1、4、18,就像wc
在 en_GB.UTF-8 语言环境中的 FreeBSD 系统上一样。