Linux中的换行符

说明:本文仅供学习交流,转载请标明出处,欢迎转载!

将windows下编写的一个txt文件在Linux下打开的时候发现每行行末都会多出^M,而将Linux编写的一个txt文件在windows下打开时发现所有的内容都在一行显示,原本在Linux下是分了行的,为什么会出现这种现象呢?其实这与windows和Linux对换行符的标志不一样而已。

在介绍两者系统的换行符之前,先介绍下回车换行的概念。

回车:CR,在文本中显示为^M,在字符串中对应为‘\r‘,r表示return;

换行:LF,在文本中显示为$,在字符串中对应为‘\n‘,n表示next。

Windows中断行字符

Windows觉得换行应该要做两件事:第一是要将读写针头跑到下一行(换行);第二则是要在下一行从头开始读写(回车),所以windows一直都是用 CR+LF表示换行的意思,字符为‘\r\n‘。

Linux中的断行字符

早起的Unix闲用两个字符(CR+LF)表示表示换行麻烦,就只采用后者LF(mac系统则独树一帜,采用前者CR表示换行符)。所以Linux采用的换行字符为‘\n‘。

总结:Window中的断行字符为‘\r\n‘,Linux中的断行字符为‘\n‘,mac的断行字符为‘\r‘

既然Linux和Windows的断行字符不一致,那么问题就来了。两者在相互读取问题的时候,则会出现向本文开头那样的问题:Linux系统读windows系统下编写的txt文件时,会在每行的末尾多一个^M(即多了‘\r‘);而windows系统下读取Linux下编写的txt文件时,所有的内容都在同一行(因为缺少\r)

在Linux下提供了一组命令,来相互转化windows后Linux下的文件.

dos2UNIX命令:将Windows文件-->Linux文件;

 UNIX2dos命令:将Linux文件--->Windows文件;

两个参数:

-k:(keep)保留原来文件的最近修改时间参数,即本次转化不算修改内容,mtime不变;

-n 旧文件名 新文件名:(new)保留旧文件,将转化后的文件输出到新文件。

 Notice:在Linux系统下读取Windows文件时,一定要先采用dos2UNIX命令转化下;将Linux下编写的文件传给Windows文件时,一定要先用UNIX2dos转化下。

Linux中的换行符

时间: 2024-10-08 10:44:47

Linux中的换行符的相关文章

替换SQL字段中的换行符,回车符

有时候我们需要替换一些不需要的SQL字段, 下面就为您介绍替换SQL字段的几种情况,如果您对替换SQL字段方面感兴趣的话,不妨一看. 替换SQL字段中的换行符,回车符: 1> 回车符 SELECT *, REPLACE(detail, CHAR(13) , '<br>') AS 显示替换后的内容 FROM loginfo 2>换行符 SELECT *, REPLACE(detail, CHAR(10), '<br>') AS 显示替换后的内容 FROM loginfo

textarea 中的换行符问题

下面是我对这个问题的解决过程,最后算是完全搞懂了,真是阴沟里险些翻船 1.必须知道textarea中的换行符是 \n  (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将\n转换成<br >,其实不是的: 看php手册解释: nl2br –  Inserts HTML line breaks before all newlines in a string Returns string with ‘<br

linux shell 删除换行符(多行内容在一行显示)&删除空行

删除换行符(多行内容在一行显示): 1.sed -e ':a;N;s/\n//;ta' filename 2.在Vi中,使用:%s/\n//g 3.cat filename |xargs echo 和cat filename|xargs 的行为是一样的,xargs默认是打印输出前一条命令的结果,将多行的内容在一行显示,最简单的方法 删除^M符号(CTRL+V,然后CTRL+M) 1.sed -e 's/^M//g' filename 2.在Vi中,使用:%s/^M//g "g"全文替换

C#(去、过滤)掉字符中的换行符

原文:C#(去.过滤)掉字符中的换行符 原文地址: http://www.feedou.com/articlepickservlet?commandkey=singlearticle&articleID=5c42b75f1b435084011b49ba083217d4 本文介绍的方法需要先导入命名空间:usingSystem.Text.RegularExpressions; 字符串里所有的的换行符都去掉:textStr = Regex.Replace(textStr, @"[/n/r]&

WPF中的换行符

原文:WPF中的换行符 WPF中UI上和后台代码中的换行符不同. 其中: XAML中为 C#代码中为 \r\n 或者: Environment.NewLine 版权声明:本文为博主原创文章,未经博主允许不得转载.

wpf中的换行符(转)

WPF中UI上和后台代码中的换行符不同. 其中: XAML中为 C#代码中为 \r\n 或者: Environment.NewLine

关于sql中去换行符的问题

今天要用bootstrap开发一个网页,要使用到JSON,但是JSON的格式不正确,然后在http://www.bejson.com/[Be JSON]中测试了一下JSON. 发现JSON中多了一个换行符,然后在输入库中清掉换行符就得到正确的JSON格式了.在Windows或者是SQL中的换行符都是以\r\n存在的,所有使用 Replace()函数置换就行.在Ascii码中,\n是10,\r是13 Update Table Set Column1=Replare(Column1,char(10)

php函数nl2br的反函数br2nl 将html中的br换行符转换为文本输入中的换行符

下面这几个方法将能够帮你解决这个问题. PHP版将html中的<br />换行符转换为文本框中的换行符: 代码如下: function br2nl($text){ return preg_replace('/<br\\s*?\/??>/i','',$text); } 或者 代码如下: function br2nl($text){ $text=preg_replace('/<br\\s*?\/??>/i',chr(13),$text); return preg_repla

Teradata数据中包含换行符导致查询结果导出串行问题

Teradata数据中包含换行符导致查询结果导出串行问题 系统在日常运行期间,有部分数据是读取EXCEL导入到生产系统中的.这就导致了数据质量良莠不齐.有的Excel单元格中有换行符,数据导入后,再次查询时,就有可能出现导出结果数据串行的问题. 先来还原这一问题.(还未找到解决方案……T_T) 编写SQL,运行结果如下图: 复制Answer到UE中查看: 利用SQLA自带的导出功能,导出txt查看: 需注意的是,Create table with data 与 insert select运行结果