我们经常需要统计文件的行数、单词数和字符数。很多时候,这种统计结果被用于生成所需要的输出。本书的其他章节就包含了这样一些富有技巧性的实例。对开发人员来说,统计代码行数(LOC,Lines of Code)是一件经常要做的工作。我们可能需要对特定类型的文件进行统计,例如不包括目标文件在内的源代码文件。wc结合其他命令就可以帮助我们实现这种需求。

wc是一个用于统计行、单词和字符数量的实用工具。它是Word Count(单词计数)的缩写。

实战演练

wc支持多种选项来统计行数、单词数和字符数。

统计行数

  1. wc -l file #统计文件中内容行数
  1. [root@dev workspace]# ls
  2. echo if.sh output.txt showArgs.sh umq welcome.txt
  3. else input.txt out.txt temp.txt variables.sh
  4. golang out.html printf.sh tools vitest
  5. [root@dev workspace]# wc -l output.txt
  6. 1 output.txt
  7. [root@dev workspace]# wc -l out.html
  8. 6501 out.html
  9. [root@dev workspace]#

stdin作为输入且统计

如果需要将stdin作为输入,使用下列命令:

  1. $ cat file | wc -l
  1. [root@dev workspace]# cat out.html | wc -l
  2. 6501
  3. [root@dev workspace]#

统计单词数

  1. $ wc -w file
  2. $ cat file | wc -w
  1. [root@dev workspace]# cat out.html | wc -w
  2. 47826
  3. [root@dev workspace]#

统计字符数

  1. $ wc -c file
  2. $ cat file | wc -c
  1. [root@dev workspace]# cat out.html | wc -c
  2. 1024100
  3. [root@dev workspace]#

我们可以按照下面的方法统计文本中的字符数:

  1. echo -n 1234 | wc -c
  1. [root@dev workspace]# echo -n 1234 | wc -c
  2. 4
  3. [root@dev workspace]#

-n用于避免echo添加额外的换行符。

wc选项

不使用任何选项时,wc会打印出行、单词和字符的数量:

  1. $ wc file
  2. 1435 15763 112200
  1. [root@dev workspace]# wc out.html
  2. 6501 47826 1024100 out.html
  3. [root@dev workspace]#

这些分别是文件的行数、单词数和字符数。

输出文件中最长一行的长度

使用-L选项打印出文件中最长一行的长度:

  1. $ wc file -L
  1. [root@dev workspace]# wc out.html -L
  2. 340 out.html
  3. [root@dev workspace]#