shell 统计文件字数、字符数、字节数及行数信息

时间:2022-10-19 11:02:32

一、概述

wc 命令用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。wc 是 word count 的缩写。

该命令支持的选项有:
选项 说明
-w, --words 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串
-c, --bytes 统计字节数
-l, --lines 统计行数
-m, --chars 统计字符数
-L, --max-line-length 打印最长行的长度
–help 显示帮助信息
–version 显示版本信息

二、使用

1、查看文件的字节数、字数、行数

wc test.log
"5 6 27 test.log"
5:第一列表示行数。
7:第二列表示单词数。
27:第三列表示字节数。
test.log:第四列表示文件名。

2、统计单词数

统计单词数,可以用 -w 选项
wc test.log
"5 6 27 test.log"
wc -w test.log
"6 test.log"

3、统计字节数

如果要统计字节数,需要用到 -c 选项
wc test.log
"5 6 27 test.log"
wc -c test.log
"27 test.log"

4、统计字符数

如果要统计字符数,需要用到 -m 选项。
wc test.log
"5 6 27 test.log"
wc -c test.log
"27 test.log"

5、统计行数

如果要统计行数,可以使用 -l 选项
wc test.log
"5 6 27 test.log"
wc -m test.log
"5 test.log"

6、不输出文件名

使用 wc 命令默认是会输出文件名的,我们可以使用如下格式的命令,就会避免输出文件名
cat test.log|wc
"5 6 27"

7、计算字符串长度

# 语法
echo 字符串 | wc -m
# 示例,之所以要加上 -n 选项是因为使用 echo 命令输出会自带一个换行符,所以去除掉才会不影响真实统计结果
echo -n "hello world" | wc -m #输出为11
echo "hello world" | wc -m #输出为12

三、补录字节与字符区别

(一)“字节”的定义
字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。
(二)“字符”的定义
字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
(三)“字节”与“字符”
它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:
ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个
数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。
UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。
- 符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。
UTF-32编码中,世界上任何字符的存储都需要4个字节。