Linux中的Wc命令(计算行数,单词数和字符数)

时间:2020-03-05 15:28:46  来源:igfitidea点击:

在Linux和类似Unix的操作系统上,使用'wc'命令可以计算每个给定文件或者标准输入的行数,单词数,字符数和字节数,并打印结果。

在本教程中,我们将通过简单而实际的示例向我们展示如何使用'wc'命令。

如何使用“ wc”命令

'wc'命令的语法如下:

wc OPTION... [FILE]...

'wc'命令可以接受零个或者多个输入'FILE'名称。
如果未指定“ FILE”,或者当“ FILE”为“-”时,“ wc”将读取标准输入。
单词是由空格,制表符或者换行符分隔的字符串。

当使用不带任何选项的最简单形式时,“ wc”命令将打印四列,即作为参数传递的每个文件的行数,字数,字节数和文件名。
使用标准输入时,不显示第四列(文件名)。

例如,以下命令将显示有关虚拟文件'/proc/cpuinfo'的信息:

wc /proc/cpuinfo

输出将类似于以下内容:

448 3632 22226 /proc/cpuinfo
  • 448是线数。
  • 3632是字数。
  • 22226是字符数。

使用标准输入时,不显示文件名:

wc < /proc/cpuinfo
448 3632 22226

要显示有关多个文件的信息,请将文件名作为参数传递,并以空格分隔:

wc /proc/cpuinfo /proc/meminfo

该命令将为我们提供有关每个文件的信息,以及包含总统计信息的一行:

448 3632 22226 /proc/cpuinfo
49 143 1363 /proc/meminfo
497 3775 23589 total

下面的选项使我们可以选择要打印的计数。

  • '-l','-lines'-打印行数。
  • '-w','-words'-打印单词数。
  • '-m','--chars'-打印字符数。
  • '-c','--bytes'-打印字节数。
  • '-L','--max-line-length'-打印最长的行的长度。

使用多个选项时,按以下顺序打印计数:换行符,单词,字符,字节,最大行长。

例如,仅显示单词数,我们将使用:

wc -w /proc/cpuinfo
3632 /proc/cpuinfo

这是另一个示例,它将打印行数和最长行的长度。

wc -lL /proc/cpuinfo
448 792 /proc/cpuinfo

'--files0-from = F'选项允许'wc'从文件'F'中以NUL结 tail的名称指定的文件中读取输入。
如果“ F”为“-”,则从标准输入中读取名称。
例如,我们可以使用“ find”命令搜索文件,并将这些文件作为“ wc”的输入提供:

find /etc -name 'host*' -printf0 | wc -l --files0-from=

输出将显示“/etc”目录中所有名称以“ host”开头的文件的行数:

4 /etc/host.conf
27 /etc/avahi/hosts
1 /etc/hostname
14 /etc/hosts
46 total

计算行数

'wc'命令通常与'-l'方法一起使用,以仅计算文本文件中的行数。
例如,要计算“/etc/passwd”文件中的行数,请输入:

wc -l /etc/passwd

第一列是行数,第二列是文件名:

44 /etc/passwd

计算字数

要仅计算文本文件中的单词数,请使用“ wc -w”,后跟文件名。
以下示例计算“~/Documents/file.txt”文件中的单词数:

wc -l /etc/passwd

字数显示在第一列中:

513 /home/theitroad/Documents/file.txt

Wc命令示例

“ wc”命令可以通过管道与其他命令结合使用。
这里有一些例子。

计算当前目录中的文件

'find'命令将当前目录中所有文件的列表(每个文件名放在一行中)传递给'wc'命令,该命令对行数进行计数并显示结果:

find . -type f | wc -l

计算用户数

在下面的示例中,“ wc”用于计算“ getent”命令输出中的行数。

getent passwd | wc -l