Linux、windows下回车换行格式转换 回车换行结尾转换
来源:互联网 发布:js软键盘关闭事件 编辑:程序博客网 时间:2024/04/29 00:33
Linux、windows下回车换行格式转换 回车换行结尾转换
3.sed命令替换
sed -e 's/.$//' dos.txt > linux.txt
二、Linux文本传到windows系统,转换方法:
sed -e 's/$/\r/' 1pnet.txt >dos.txt
三、其他
Mac -> UNIX:tr "\r" "\n"<macfile > unixfile
UNIX -> Mac:tr "\n" "\r"<unixfile > macfile
Microsoft DOS/Windows 约定,文本的每行以回车字符(\r)并后跟换行符(\n)结束。为了纠正这个问题,可以使用下列命令:
DOS -> UNIX:tr -d "\r"<dosfile > unixfile
UNIX -> DOS:在这种情况下,需要用awk,因为tr不能插入两个字符来替换一个字符。要使用的 awk 命令为 awk '{ print $0"\r" }'<unixfile > dosfile
附:
关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
Unix 系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“ <回车><换行>”,即“ \r\n”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会 变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
1)把Dos/Windows下的文件移至Linux/Unix系统
虽然很多程序不在乎 DOS/Windows 格式的 CR/LF 文本文件,但是有几个程序却在乎 -- 最著名的是 bash,只要一遇到回车,它就会出问题。以下 sed 调用将把 DOS/Windows 格式的文本转换成可信赖的 UNIX 格式:
$ sed -e 's/.$//' mydos.txt > myunix.txt
该脚本的工作原理很简单:替代规则表达式与一行的最末字符匹配,而该字符恰好就是回车。我们用空字符替换它,从而将其从输出中彻底删除。如果使用该脚本并注意到已经删除了输出中每行的最末字符,那么,您就指定了已经是 UNIX 格式的文本文件。也就没必要那样做了!
2)把Linux/UNIX 文本移至 Windows 系统,使用以下脚本执行必需的格式转换:
$ sed -e 's/$/\r/' myunix.txt > mydos.txt
在该脚本中,'$' 规则表达式将与行的末尾匹配,而 '\r' 告诉 sed 在其之前插入一个回车。在换行之前插入回车,立即,每一行就以 CR/LF 结束。请注意,仅当使用 GNU sed 3.02.80 或以后的版本时,才会用 CR 替换 '\r'。
DOS文件格式如何转换成UNIX文件格式
---------------------------------------------------
dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是
vi
这样文件就转换成 unix格式文件了, 一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况.
用命令:set ff?
可以看到dos或unix的字样.
用:set ff=unix把它强制为unix格式
也可以用sed 这样的工具来做:
sed 's/^M//' filename > tmp_filename
其中^M是同时 Ctrl+V+M按出来的,表示回车。
- Linux、windows下回车换行格式转换 回车换行结尾转换
- Windows下的回车换行转换Linux系统下的回车换行
- Linux 回车与换行 格式转换 编码转换
- windows与linux下回车与换行
- C语言实现dos2unix函数,Windows的回车换行转换成Unix回车换行
- masterJ2SE篇002——Windows与Linux回车换行的转换
- UNIX 与 MSDOS 回车换行风格转换
- oracle数据库回车换行的转换
- 回车和换行在windows和linux下的区别
- linux和windows下的“回车符”和“换行符”
- linux和windows下的“回车符”和“换行符”
- linux和windows下的“回车符”和“换行符”
- linux和windows下的“回车符”和“换行符”
- linux----回车换行
- windows下回车和换行 区别
- Windows下的回车换行(\r\n)
- Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)
- WINDOWS、LINUX平台换行符,回车符
- 定制UITableviewCell实现类似微博的分组效果
- Android 调用系统应用
- python 文件夹比较
- Allegro学习笔记之——覆铜
- 如何在程序中添加iAd广告
- Linux、windows下回车换行格式转换 回车换行结尾转换
- 我们的毕设-苏醒
- cassandra简介
- mvc中获取url传参
- 用 OptionParser 构建 Command Line 工具
- JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误
- Android Animation学习笔记
- JPivot标签库使用说明
- 【转】揭秘SAP在华真相:天价收费与用户之灾