先简单介绍

wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出

格式:wc file

命令参数:

-c 统计Bytes数(字节数),并显示文件名

-l 统计行数:使用换行符‘\n’作为行结束标志,实际是统计换行符个数

-m 统计字符数。这个标志不能与 -c标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

-help 显示帮助信息

--version 显示版本信息

实例:

wc test.txt

6  24 132test.txt

默认输出:行,字数,字节数

test.txt内容

Cat test.txt

test1 name1 age1 sex1

test2 name2 age2 sex2

test3 name3 age3 sex3

test4 name4 age4 sex4

test5 name5 age5 sex5

test6 name6 age6 sex6

问题:wc 统计行数时少一行:

因为wc –l是按\n作为行结束符统计行数,所以最后一行如果没有\n的话会统计丢失。

实例:比如,在windows下生成同上面test.txt相同的文件testtt.txt,上传到linux下:

cat testtt.txt

test1 name1 age1 sex1

test2 name2 age2 sex2

test3 name3 age3 sex3

test4 name4 age4 sex4

test5 name5 age5 sex5

test6 name6 age6 sex6[wizad@srv26 lmj]$

可以看出结尾有点奇怪。这是因为文件末尾无\n,而是直接用了文件结束符EOF。这样文件使用wc统计就会少一行:

wc -l testtt.txt

5 24 136 testtt.txt

使用管道也不行:

cat testtt.txt | wc -l

5

为什么linux下没有这样的问题?

因为vim编辑器会自动在文件结尾加上\n,在加上文件结束符EOF。(linux下文本文件主要按处理,所以vim会末行自动加\n)

而对windows文件用dos2unix转化也不行:

[wizad@srv26 lmj]$ dos2unix testtt.txt

dos2unix: converting file testtt.txt toUNIX format ...

[wizad@srv26 lmj]$ wc testtt.txt

5  24131 testtt.txt

可以看出windows文件在linux下还是有兼容问题的。文件字数没变24,byte数少5个是windows下行结束符是回车\r+换行\n。而linux下只是换行\n

Vim二进制可以看到不同,\n显示为.,文件结尾没有

最新文章

  1. 故障重现, JAVA进程内存不够时突然挂掉模拟
  2. css兼容tooltip提示框方法
  3. JS检测浏览器是否支持HTML5视频播放 (标签<video>) ,
  4. 企业需要k2来解放孤岛危机
  5. Silverlight 读取配置文件
  6. Android 编译使用高版本的Java
  7. 《编写高质量代码-Web前端开发修改之道》笔记--第一章 从网站重构说起
  8. iOS5编程--ARC在工程上的相关设置
  9. 简单方法打包.net程序集脱离framework
  10. 转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)
  11. C# richTextBox编辑器
  12. 去掉ILDasm的SuppressIldasmAttribute限制
  13. Emmet插件
  14. UVA 571 Jugs ADD18 小白书10 数学Part1 专题
  15. 第七周LINUX学习笔记
  16. FLASHBACK介绍
  17. C#生成JOSN字符串
  18. php留言板程序
  19. python 去除字符串末尾的子串
  20. js中如何优雅的写if判断

热门文章

  1. JavaScript实现简单的双向数据绑定
  2. IE下iframe跨域session和cookie失效问题的解决方案
  3. Angular5 路由传参的3种方法
  4. dict 字典的用法
  5. 操作系统内核Hack:(二)底层编程基础
  6. 新版Azure CDN HTTPS加速服务正式上线
  7. Scheme r5rs letrec的用法
  8. 安卓高级6 SnackBar
  9. 熟悉Python的各种基础小算法
  10. ROS(indigo)RRT路径规划