wc 命令:用 Ubuntu 20.04 LTS 中的 5 个示例进行解释

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 命令的基础知识及其命令行选项和一些实际示例。 现在,您可以轻松计算文件和其他命令输出中的行数、单词数、字符数和字节数。