计算行数,字数以及字符数
wc命令可能是linux工具集里最古老也最简单的工具程序.wc的默认输出是一行报告,包括行数,字数以及字节数:
echo this is a test of the emergency broadcast system | wc
1 9 49
如果要求仅输出部分结果,可以使用的选项有:-c(字节数),-l(行数),-w(字数);
echo test one two three | wc -c
19
echo test one two three | wc -l
1
echo test one two three | wc -w
4
-c选项原本是表示字符数,但因为有多字节字符集的编码存在----像是UTF-8,因此在当前系统上,字节数已不再等同于字符数了,也因此,posix出现了-m选项,用以计算多字节字符,对8位字符数据而言,它是等同于-c的.
虽然wc最长处理的是来自于管道的输入数据,但它也接受命令行的文件参数,可以生成一行一个结果,再附上报告:计算两个文件里的数据
输入命令:wc /etc/passwd /etc/group
输出结果:
40 61 1804 /etc/passwd
64 64 874 /etc/group
104 125 2678 总用量
wc的现代版会随locale而有不同结果:将环境变量LC_CTYPE设为想用的locale,会影响wc把字节序列解释为字符或单词分隔器.
做一个操作,需要把一个文件的行数存在另一个文件里。可是这个wc还会同时输出文件名。咋办?简单,用管道处理一下
wc -l demo.txt | awk -F" " '{print$1}'
这样,我们就把想要的文件行数给取到了,至于存在另一个文件里,我们可以把awk的print结果重定向到文件啊,
补充:wc所有选项
-c:统计字节数
-l:统计行数
-m:统计字符数.这个标志不能与-c标志一起使用
-w:统计字数.一个字被定义为由空白,挑个或换行字符分隔的字符串.
-L:打印最常行的长度
-help:显示帮助信息
--version:显示版本信息