本文的内容是 Linux 的 wc 命令,这个名字很好记,因为什么,你懂的,对,就是 word count,和我想的一样!
这个命令的功能也同样很好记,因为它功能很有限。wc 命令的主要作用就是计算一个文件中的字数、单词数和字节数。我们通过示例来了解一下。
我们为此准备了几个文件素材,它们的内容分别是:
#通过cat查看文件, 其中两行内容, 中英文混合 [root@roclinux ~]# cat my001.txt hello world 你好 世界 #文件的编码信息如下 [root@roclinux ~]$ file my001.txt my001.txt: ISO-8859 text #通过sed可以看到按字节显示的内容, 也包括控制符 [root@roclinux ~]# sed -n l my001.txt hello world$ \304\343\272\303 \312\300\275\347$
由此可以很清晰地看出,在 my001.txt 文件中:
如果你做试验的文件的编码格式是 UTF-8 或其他,则可能会影响统计结果,因为不同编码格式中汉字所占的字节数各不相同。
我们就针对这个素材文件,来展示 wc 命令的基本作用:
#-c选项表示以字节(byte)来计数 [root@roclinux ~]# wc -c my001.txt 22 my001.txt #-m选项表示以字符(char)来计数 [root@roclinux ~]# wc -m my001.txt 18 my001.txt #-l选项表示以行(line)来计数 [root@roclinux ~]# wc -l my001.txt 2 my001.txt #-w选项表示以词(word)来计数 [root@roclinux ~]# wc -w my001.txt 4 my001.txt
经过这几个示例,相信大家已经基本掌握了 wc 的用法以及它计数的原理了。接下来,我们看一些有关 wc 命令值得了解和关注的地方。
wc 命令有一个-L选项,可以显示一个文件中最长行的长度。
这里所谓的最长行,是按照字节数来计算的,而非字符数(char)或词数(word),同时要注意的是,在计算最长行的长度时,是不会将行尾符($)计算在内的。
[root@roclinux ~]# wc -L my001.txt 11 my001.txt
我们搞了一个新的文件素材,大家看看,其中包括了一个制表符:
#文件中包含了hello world [roc@roclinux ~]$ cat my002.txt hello world #两个单词之间包含了一个制表符\t [roc@roclinux ~]$ sed -n l my002.txt hello\tworld$
这个制表符比较特殊,需要分情况来说明一下:
我们来看一下实际的统计结果:
#再看一下文件内容 [roc@roclinux ~]$ cat my002.txt hello world #统计字节数 [roc@roclinux ~]$ wc -c my002.txt 12 my002.txt #统计字符数 [roc@roclinux ~]$ wc -m my002.txt 12 my002.txt #统计词数 [roc@roclinux ~]$ wc -w my002.txt 2 my002.txt
如果你直接执行 wc 命令,不加任何选项,则会显示:
#文件内容 [roc@roclinux ~]$ cat my001.txt hello world 你好 世界 #输出信息依次是:行数 词数 字节数 文件名称。 [roc@roclinux ~]$ wc my001.txt 2 4 22 my001.txt
可见,当不使用任何选项来运行 wc 命令时,wc 命令输出了四个字段,分别表示:
行数 词数 字节数 文件名称
好了,本文到这里就结束了,有时间的话,可以用 wc 命令统计一下你代码的词数和字符数,然后晒出来大家比一比哦!