Linux wc命令–文件中字,行,字符的计数

时间:2020-02-23 14:40:04  来源:igfitidea点击:

Linux wc命令用于计算文件中单词,行和字符的数量。
" wc"代表字数统计。

Linux wc命令

让我们看看手册页如何定义wc命令。
可以通过键入以下命令来访问手册页。
Linux wc手册页

以下将显示为输出。
让我们逐部分地了解wc帮助页面。
Linuxwc help输出

所描述的wc命令可用于获取指定文件中包含的换行符,单词或者字节的数量。

输出将包含换行符,单词或者字节的数量(如果输入多个文件,则为文件方式),最后是"总计"行,该行将显示所有文件中单词,换行符或者字节的总和。

wc命令的语法

$wc [OPTION]… [FILE]…

Linux wc命令示例

让我们看一个了解wc命令的示例。

我已经在Desktop上创建了2个示例文本文件– test.txt和test2.txt,并使用cd命令导航到Desktop目录。

现在,根据语法键入wc命令并执行它,将得到以下输出。

Linux wc命令输出

输出有3行,分别对应于test.txt,test2.txt和total。

  • 输出的第一列显示文件中的行数。
    由于上面显示的两个文本文件中只有一行,因此test.txt和test2.txt的输出为1。

  • 输出的第二列显示文件中的单词数,在我们的示例中,分别为12和15。

  • 输出的第三列显示文件中的字节数+ 1(或者字符,因为每个字符在内存中占用1个字节),在我们的例子中,在test和test2中分别为58和74。
    (+1另外字节是由于文本编辑器自动在行尾添加了'\ n')。

  • 总行仅显示输入中提到的所有文件中的行,单词和字节的总和。

Linux wc命令选项

手册页提供了有关wc命令选项的信息。

Linux wc命令选项

如上所示,以下选项可与命令一起使用以打印特定的计数-仅显示用户所需的计数。

  • -c,–bytes选项可用于打印文件中的字节数+1,如下所示。
    如果输入了多个文件,则输出中还会显示一条另外的总行。
    Linuxwc -c –bytes选项

  • -m,–chars选项只能用于打印文件中的字符数+1,如下所示。
    由于在此示例中字符数等于字节数,因此-c和-m的输出相同。

  • -l或者–lines选项只能用于打印文件中的行数,如下所示。
    如果提供了多个文件,则输出中还将显示另外的总计行。

Linux wc行数

  • -L或者–max-line-length选项可用于打印文件中存在的所有行的最大字符数的行中的字符数。

Linux wc -L选项

其中我创建了2个新的.txt文件– file1.txt和file2.txt,分别包含一些水果和汽车的名称。

我们可以看到输出显示file1.txt为10,file2.txt为13。
"西瓜"和"丸木铃木"行在各自的文件中最长,分别具有10和13个字符。

您可能会注意到总行似乎显示了不正确的总和。
这是因为使用-L时,total显示在其上方显示的最大数字作为输出,在本例中为13。

  • -w或者–words只能用于打印文件中的单词数,如下所示。

Linux wc字数统计

  • –files0-from = F可用于从文件中读取输入,这些文件的名称包含在文件F中,并用空字符(字节值0)分隔,而不用空格/制表符/结尾。
    如果没有文件或者文件名是"-",则直接从标准输入中读取输入。

Linux wc文件从
When – is written as file name and the command is executed, terminal waits for an input. If we type the file name then and press Ctrl+D twice, the output is displayed in the same line as shown. Once no more inputs are required, Ctrl+C is pressed to exit the process.

在cat和grep中使用wc命令

Linux wc命令还可以直接从另一个命令的标准输入输出中获取输入,而另一个命令可以作为输入重定向到wc。
这对于将其与cat和grep等其他命令一起使用非常有用。

其中cat的输出从stdout通过管道传递(重定向)到wc命令的stdin。
test和test2的输出也可以这种方式显示。

带有grep命令的Linux wc

在此示例中,我们的目标是在file1.txt中找到包含字母" e"的行总数。
为此,使用grep如图所示,以从文件中过滤出字母" e"。
然后,将输出通过管道传输(重定向)到wc的标准输入。
我们在wc中添加了-l选项,以查找输入中的行数。

因此,我们的输出为4,因为除了最后一行中的奇异果,所有水果的名称都包含字母" e"。