wc(字数统计)命令是 GNU 核心实用程序之一,看起来很简单,但实际上是一个非常有用的命令。 从名称中可以看出,它计算文件中的行数、单词数、字符数、字节数,甚至最长行的长度,并将它们打印到标准输出。 您可能出于多种原因需要此计数。 为了 example,您可以使用字符数来限制帖子中可以插入的字符数。 同样,您可以计算系统上的用户数量、系统上安装的软件包数量等。
在本文中,我们将解释如何在 Linux 中使用 wc 命令及其命令行选项和一些示例。
我们已经在 Ubuntu 20.04 Focal Fossa 系统上执行了这些命令。 或多或少相同的命令也可以在其他 Linux 发行版上实现。 我们已经在默认终端应用程序上运行命令,可以通过 Ctrl+Alt+T 键盘快捷键访问。
句法
以下是 wc 命令的基本语法:
wc [OPTION]... [FILE]...
如果你想使用多个选项,你可以不加空格地添加它们。 而对于多个文件,您应该将它们用一个空格分隔。
wc命令的基本用法
当 wc 命令不带任何命令行选项使用时,它返回文件中的行数、字数和字节数。 要使用 wc 命令,只需键入 wc 后跟要查找计数的文件名。
$ wc testfile.txt
输出解释:
wc 命令在四列中打印指定文件的计数结果。 第一列显示文件中的行数,第二列显示字数,第三列显示字节数,第四列显示文件名。
注意: wc 只打印换行数而不是指定文件中的实际行数。
在上面的命令输出中,12是行数,21是字数,116是“testfile.txt”中的字节数。
如果您不想在结果中打印文件名,请使用 < 和 wc 命令,如下所示:
$ wc < testfile.txt
从多个文件中计数
使用 wc 命令,您可以指定多个文件进行计数。 wc 命令返回每个文件的计数以及最后的总计数,即每个文件的计数总和。
选项
wc 命令有一些命令行选项。 让我们看看这些选项及其功能:
计算行数
使用 wc 命令 -l 或者 – 线 选项,您可以只打印文件中的行数。 例如,以下命令将仅打印“testfile.txt”中的行数:
$ wc -l testfile.txt
在以下输出中,12 是“testfile.txt”中的行数。

计算字数
如果您只需要打印文件中的字数,请使用 wc 命令 -w 或者 -字 选项。 例如,以下命令将打印“testfile.txt”中的字数:
$ wc -w testfile.txt
在以下输出中,21 是“testfile.txt”中的单词数。

计算字节数
使用 wc 命令 -C 或者 –字节 选项,您可以打印文件中的字节数。 以下命令将打印“testfile.txt”中的字节数:
$ wc -c testfile.txt
在以下输出中,116 是“testfile.txt”中的字节数。
计算字符数
使用 wc 命令 -m 或者 –字符 选项,您可以打印文件中的字符数。 例如,以下命令将仅打印“testfile.txt”中的字符数:
$ wc -m testfile.txt
在以下输出中,116 是 testfile.txt 中的字符数。
注意:ASCII 格式文件的字节数和字符数相同。
最长行的打印长度
如果您需要打印特定文件中最长行的长度,可以使用 wc 命令执行此操作 -L 或者 –max-line-length 选项。 例如,以下命令将打印“testfile.txt”的最长行的长度:
$ wc -L testfile.txt
在以下输出中,20 是最长行的长度。
查看版本
要查看 wc 命令的版本,请使用以下命令:
$ wc --version

打印行数和字节数
您还可以组合命令行选项。 例如,要打印行数和字节数,请组合 -l 和 -c 选项,如下所示:
$ wc -lc
注意:无论您运行 -lc 还是 -cl,输出的顺序总是相同的,即行、字和字节数。

在上面的输出中,29 是行数,782 是文件“sample.txt”中的字节数。
将计数存储在文件中
为了将 wc 命令的输出保存在文件中,请使用 > 运算符,如下所示:
$ wc sample.txt > file_count
Wc 命令用法示例
让我们通过管道与其他命令来看看 wc 命令的一些示例。
计算任何目录中的文件
要计算任何目录中的文件数,请将 find 命令的输出通过管道传输到 wc。 例如,要查找 ~/Downloads 目录中的文件数,命令将是:
$ find ~/Downloads/ -type f | wc -l
find 命令列出了系统的 ~/Downloads 目录中的所有文件,然后通过管道将其传送到 wc 命令以获取计数。

统计用户数
wc 命令还可用于统计系统中的用户总数。 要计算用户数量,请使用“getent passwd”命令并将其输出通过管道传递给 wc 命令,如下所示:
$ getent passwd | wc –l
‘getent passwd’ 命令列出系统中的所有用户,然后通过管道传送到 wc 命令以获取计数。

计算已安装包的数量
使用 wc 命令,您还可以计算系统中已安装软件包的数量。 要计算已安装软件包的数量,请使用以下命令:
$ apt list --installed | wc -l
“apt list –installed”命令列出系统中所有已安装的软件包,然后通过管道传送到 wc 命令以获取计数。

计算文件中特定单词的数量
使用 wc 命令,您可以计算文件中特定单词的数量。 例如,要查找“science”一词在名为“sample.txt”的文件中出现的次数,命令为:
$ grep -o ‘science’ sample.txt | wc -w
在这个 example,grep 命令在 sample.txt 文件中搜索单词“science”的出现,然后通过管道传送到 wc 命令以获取计数。

计算特定行中的字符数
使用 wc 命令,您还可以查找特定行中的字符数。 例如,要查找一行中的字符数 50 在名为“sample.txt”的文件中,命令为:
$ head -50 sample.txt | tail -1 | wc -w
在这个 example, 这 头 命令将列出 sample.txt 文件的前 50 行,然后通过管道将其传送到 tail 命令。 这 ”尾-1”命令然后过滤掉它从 头 命令。 从输出 尾巴 然后将命令通过管道传送到 wc 命令以获取第 50 行中的字符数。

使用脚本进行计数
在下面的 example,我们将创建一个脚本来计算文件中的行数、单词数和字节数。 运行脚本时,我们会将文件名作为参数传递,以便您可以为任何文件运行相同的脚本。
使用以下代码行创建一个脚本:
#!/bin/bash echo "File to read:" read file echo "" echo "This file has the following number of:" echo -n "Lines: " wc -l < $file echo -n "Words: " wc -w < $file echo -n "Chars: " wc -c < $file

现在通过将文件名作为参数传递来运行脚本。
$ <./script_name> <path/to/filename>
例如,要获取名为“sample.txt”的文件的行数、单词数和字符数,请通过将 sample.txt 作为参数传递来运行脚本:
$ ./script2 sample.txt
运行脚本后,您将收到类似的输出,显示文件的字数。

如果文件位于当前工作目录以外的其他位置,请提及完整路径:
$ ./script2 /etc/passwd

这就是在 Linux 中使用 wc 命令的方法。 在本文中,您学习了 wc 命令的基础知识及其命令行选项和一些实际示例。 现在,您可以轻松计算文件和其他命令输出中的行数、单词数、字符数和字节数。