2009十二月1
linux wc 命令简介
呃,此wc命令不是让大家没有食欲的地方。而是linux下一个简单的小命令。
NAME
wc — word, line, character, and byte countSYNOPSIS
wc [-clmw] [file ...]
下面让我们来简单的看一下其支持的参数及其代表的含义。
参数及含义
| 参数 | 含义 |
|---|---|
| -c | 显示文件的Bytes数(字节数) |
| -l | 将每个文件的行数及文件名输出到屏幕上 |
| -m | 将每个文件的字符数及文件名输出到屏幕上,如果当前系统不支持多字节字符其将显示与-c参数相同的结果 |
| -w | 将每个文件含有多少个词及文件名输出到屏幕上 |
举例
Welcome to xiaoxiaozi.com
欢迎来到这里
欢迎来到这里
wc -cwl demo.txt
#2 4 39 demo.txt 顺序依次是 l w c
#2 4 39 demo.txt 顺序依次是 l w c
强调
这里面大家要注意一点。m和c参数是不能共存的,只有一个可以起作用,看哪个参数在后面。例如:
wc -c demo.txt
#39 demo.txt
wc -m demo.txt
#33 demo.txt
wc -cml demo.txt
#2 33 demo.txt
wc -cm demo.txt
#33 demo.txt 结果为m的值哦
#39 demo.txt
wc -m demo.txt
#33 demo.txt
wc -cml demo.txt
#2 33 demo.txt
wc -cm demo.txt
#33 demo.txt 结果为m的值哦
举一反三
刚才做一个操作,需要把一个文件的行数存在另一个文件里。可是这个wc还会同时输出文件名。咋办?简单,用管道处理一下OK啦~
wc -l demo.txt | awk 'BEGIN{FS=" "}{print $1}'
这样,我们就把想要的文件行数给取到了,至于存在另一个文件里,我们可以把awk的print结果重定向到文件啊,哈哈~~
重要提示
用wc处理文件的时候,一定要在文件末尾存在换行符,否则统计的行数是不正确的。嗯。。当然多几个换行符是没有问题滴,嗯。。
感谢柳城博客兄弟的指导,在他两种方法查看文件的行数这篇日志中我们讨论了好多。呵呵。
echo "UNIX" | wc -l
# 1
echo -n "UNIX" | wc -l
# 0
echo "UNIX\n\n\n" | wc -l
# 1
# 1
echo -n "UNIX" | wc -l
# 0
echo "UNIX\n\n\n" | wc -l
# 1
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/12/01/1656/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
哈哈.. 我发现wc是用换行符来统计行数的..
所以最后要有空一行.
不然就不准确了. :smile:
[回复]
@Lc.
呵,不会吧。那我上面的两行,给我的结果不是2吗?下面没有空行哦。。
[回复]
@simaopig
你继续在测试一下呗,看是不是~~
[回复]
@Lc.
呃。。我确实是测试了啊。。要不不会这么断言的。。你加我Q?
[回复]
@simaopig
呵呵。我也非常肯定的告诉。我也测试过多次了。你应该没有打开文件来看过。 :cool:
[回复]
@Lc.
呼。。我看过文件啊。文件是我自己建的。。最简单的方法就是设一个只有一行的文件。。
因为我在公司是FreeBSD,明天测一下UBUNTU吧。嘻嘻。。
研究吧。呵呵。 :smile:
[回复]
哈哈.. 多多向你学习!!
我目前还只是会一些常用的命令.. :razz:
[回复]
@Lc.
一样。我会的也不多。呵呵。 :smile:
[回复]
你自己的网站啊!挺不错的。如何自己建立网站呢?
[回复]
我发现,-w选项不计算中文,xiaoxiaozi.com看作一个。
[回复]