Linux wc 命令 - 统计文本的字数 字符数或行数
wc 命令(英文全称为 Word Count)是 Linux / Unix 系统中用于文本各种计数统计的命令,它能够统计指定文本中的换行数、单词数、字节数、字符数、最长行的长度等信息,可以同时统计多个文件的信息,也可以统计标准输入的内容,是非常好用的一款文本计数统计工具。
本文将全面的讲解 wc 命令的语法结构、使用示例、所有的选项,即使是零基础也能快速掌握 wc 命令的用法。
wc 命令语法结构
wc 命令支持两种标准语法格式,可以适配不同的使用场景:
wc [选项]... [文件]...
wc [选项]... --files0-from=F
语法各部分的说明:
[选项]...:可选的内容,用于指定统计的维度,可以同时使用多个选项[文件]...:可选的内容,用于指定需要统计的文件,如果指定多个文件,使用空格分隔,如果不指定文件从标准输入读取内容--files0-from=F:从文件F中读取以 NUL 结尾的文件名列表作为指定的文件,再读取这些文件进行统计,NUL 是 ASCII码0对应的字符,当为F指定为-时从标准输入读取文件名的列表
wc 命令示例
如下给出一些 wc 命令的使用示例,简洁明了的说明如何使用 wc 命令。
默认统计
不使用任何的选项,直接运行命令,会统计多项信息:
wc test.txt
会依次输出 test.txt 的「换行数、单词数、字节数、文件名」。
只统计文件的行数
使用 -l 或 --lines 选项,只统计换文件包含的换行数:
wc -l test.txt
只统计文件的单词数
使用 -w 或 --words 选项,只统计换文件包含的单词数:
wc -w test.txt
只统计文件占用的字节数
使用 -c 或 --bytes 选项,只统计换文件占用的字节数:
wc -c test.txt
只统计文件的字符数
使用 -m 或 --chars 选项,只统计换文件包含的字符数:
wc -m test.txt
[!NOTE]
在统计字符数时,如果包含中文字符,1 字符占用 3 字节
统计文件列表中各文件的信息
使用 --files0-from=F 选项指定从 F 文件中读取文件列表,再统计各文件的信息,但是各个文件名要求以 NUL(ASCII码 0)结尾,然而 NUl 无法直接在文本编辑器中使用,因此需要在 shell 或 PowerShell 中生成 F 文件。
1)在 shell 中生成 files.txt 文件:
printf 'file1.txt\0file2.txt\0' > files.txt
2)使用 --files0-from=F 选项,统计多文件的信息:
wc --files0-from=files.txt
每个输出一个文件的信息,会输出类似如下的信息:
3 6 51 file1.txt
3 4 35 file2.txt
6 10 86 总计
wc 命令选项详解
wc 命令结合选项可以统计特定的信息,如下给出其全部选项的解释说明:
| 选项 | 功能说明 |
|---|---|
-c, --bytes | 只输出文件占用的字节数 |
-m, --chars | 只输出文件包含的字符数,当包含中文字符时,1 个中文字符会占用 3 个字节 |
-l, --lines | 只输出文件包含的的换行符数,会比实际的行数少 1 |
-L, --max-line-length | 只输出文件中的最长的行的显示宽度 |
-w, --words | 只输出文件包含的单词数,把使用空格分隔的内容作为一个单词,如果是中文连写会作为一个单词 |
--files0-from=F | 从文件 F 中读取以 NUL 结尾的文件名列表,作为统计对象;当 F 指定为 - 时从标准输入读取文件名 |
--total=WHEN | 输出一行显示总计信息的时机:auto:多文件自动显示,该值是默认值always:始终显示only:仅显示总计never:从不显示 |
--help | 显示命令的帮助信息并退出 |
--version | 显示命令的版本信息并退出 |
结语
wc 命令是 Linux / Unix 系统中的一款轻量、高效的文本信息统计工具,可以非常简便的统计文本中行数、单词数、字节数等信息,是文本处理需要掌握的一款命令。