wc命令统计文本少一行

提交者
• 阅读 4146

问题由来

昨天在测试的时候,遇到了一个问题,在计算文本文本的行数的时候,直接在linux系统,用的cat file.txt | wc -l 用这个命令统计的,可以结果确比真实的文本少了一行。

问题原因

wc -l 统计行数:使用换行符”\n”作为行结束标志,实际是统计换行符个数
少一行的原因就是因为wc –l是按\n作为行结束符统计行数,所以最后一行如果没有\n的话会统计丢失。windows环境下编译生成的文件文件末尾无\n

实例演示

1.windows环境下编写test1.sh

[root@51 51mn]# cat -A test1.sh
11111111^M$22222222^M$33333333^M$44444444^M$55555555

最后一行如果没有\n,wc统计的结果为4

2.在linux上面直接编写test2.sh

[root@51 51mn]# cat -A test2.sh 
111111$222222$333333$444444$555555$

最后一行如果有\n,wc统计的结果为5

微信公众号:爱问CTO
wc命令统计文本少一行
点赞
收藏
评论区
推荐文章
Python进阶者 Python进阶者
2年前
盘点一个英文文本中统计关键词的方法
大家好,我是皮皮。一、前言前几天在Python最强王者交流群【WendyZheng】问了一个英文文本中统计关键词的问题,这里拿出来给大家分享下。!image(https://uploadimages.jianshu.io/upl
Stella981 Stella981
3年前
Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
1查看CPU1.1查看CPU个数\cat/proc/cpuinfo|grep"physicalid"|uniq|wcl2\\uniq命令:删除重复行;wc–l命令:统计行数\\1.2查看CPU核数\cat/proc/cpuinfo|grep"cpucores"|uniqc
Stella981 Stella981
3年前
SHELL编程四剑客之Sed工具
SED是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑,标准输入可以来自键盘输入、文本重定向、字符串、变量,甚至来自于管道的文本。Sed工具在处理文本时默认把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace)。如果要将变化写入磁盘、文件需要使用i参数。sed命令语法参数格式:sed参数‘sed内置命令字符‘
Stella981 Stella981
3年前
Intellij idea利用Statistic插件统计项目代码行数
1.插件介绍统计项目中各个文件的数量,大小,行数,平均等信息根据扩展名自定义统计详细行数信息,包括总行数,代码行数,代码行数占比,注释行数,注释行数占比,空白行数,空白行数占比自定义选择多个文件,统计各个文件信息本插件需要JDK8或以上版本2.插件安装利用在线或离线方式安装Statistic插件到idea中
Stella981 Stella981
3年前
Linux学习笔记之Django项目部署(CentOS)
一、引入  用Django写了一个测试的项目,现在要部署在Linux上,一般这种情况下,只要在项目里面敲一行命令:python manage.py runserver0.0.0.0:8000就行了。但这是在开发项目的时候用这个可以测试项目,在浏览器看到效果。正真部署到服务器上,这样是不行的,因为窗口一关,Django也就关了。当然你也可以一直不关。。。
Stella981 Stella981
3年前
Shell对比两个文件中的记录有多少重复
问题是这样的:有两个uid的文件,格式如下:uid1.txt1234523456....uid2.txt1234534567....需要统计这两个文件中相同的uid有多少个。方法有两个:1.一个是读入一个文件的一行然后再另一个文件中找,找到就加一,shell大概是这样的(未测试)count0
Stella981 Stella981
3年前
PHP快速读取CSV大文件
CSV大文件的读取已经在前面讲述过了,但是如何快速完整的操作大文件仍然还存在一些问题。1、如何快速获取CSV大文件的总行数?办法一:直接获取文件内容,使用换行符进行拆分得出总行数,这种办法对小文件可行,处理大文件时不可行;办法二:使用fgets一行一行遍历,得出总行数,这种办法比办法一好一些,但大文件仍有超时的可能;办法三:借助SplFile
Wesley13 Wesley13
3年前
Java日期时间API系列23
  有时候,往往需要统计某个时间区间的销量等问题,这就需要准确的起始时间,获取准确开始时间00:00:00,获取准确结束时间23:59:59。下面增加了一一些方法,获取当天起始时间,昨天起始时间,当前月第一天开始时间,当前月最后一天结束时间,上个月第一天开始时间,上个月最后一天结束时间,某个指定月的起始结束时间等等。其中月份最后一天往往因为月份不同和
Stella981 Stella981
3年前
Linux统计文件行数
语法:wc\选项\文件…说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。该命令各选项含义如下:  c统计字节数。  l统计行数。  w统计字数。这些选项可以组合使用。输出列的顺序和数目不受选项的顺
Wesley13 Wesley13
3年前
C# 控制台输入和输出
\toc\控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接受输人。使用Console.ReadLine()方法获取输入,使用Console.WriteLine()方法输出。从控制台获取输入可用System.Console.ReadLine()方法获取控制台输入的文本。程序执行到这一行
Stella981 Stella981
3年前
Scala进阶之路
Scala进阶之路统计商家id的标签数以及TopN示例案例分析作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.项目需求将“temptags.txt”中的数据进行分析,统计出商家id的评论标签数量,由于博客园无法上传大文件的文本,因此我把该文本的内容放在博客园的另一个链接了(需要的戳我