DOS和UNIX文本文件之间相互转换的方法
在Unix/Linux下可以使用file命令查看文件类型,如下:
file dosfile.txt
使用dos2unix
一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:
dos2unix dosfile.txt
安装dos2unix
yum -y install dos2unix
使用tr
使用tr命令拷贝标准输入到标准输出,替换或者删除掉选择的字符,只能把DOS转换为UNIX文件,命令如下:
tr -d '\r' < dosfile.txt > unixfile.txt
使用vim
Vim是一个vi的改进版本,可以运行在Windows和Linux平台上,使用方法如下:
# vim dosfile.txt
DOS转UNIX::set ff=unix
UNIX转DOS::set ff=dos
:wq
注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:
set fileformats=dos,unix
设置完成后,使用vim打开DOS文本文件就不会显示^M字符了。
使用Emacs
Emacs是一个Unix下面的文本编辑工具。它会在底部的状态栏上显示文件的信息。
DOS转UNIX :M-xset-buffer-file-coding-system Unix
UNIX转DOS:M-xset-buffer-file-coding-system dos
使用sed
在DOS文件格式中使用CR/LF换行,在Unix下仅使用LF换行,sed替换命令如下:
DOS转UNIX:$ sed 's/.$//' dosfile.txt > unixfile.txt
UNIX转DOS:$ sed 's/$/\r/' unixfile.txt > dosfile.txt
使用Perl
Perl是相当直接,你添加或删除掉文件每行结尾的CR字符。
DOS转UNIX:perl -p -e 's/\r$//' < dosfile.txt > unixfile.txt
UNIX转DOS:perl -p -e 's/$/\r/' < unixfile.txt > dosfile.txt
使用awk
DOS转UNIX:awk '{sub("\r$","", $0);print $0}' dosfile.txt > unixfile.txt
UNIX转DOS:awk '{sub("$","\r", $0);print $0}' dosfile.txt > unixfile.txt
使用Python
DOS转UNIX:python -c "import sys; map(sys.stdout.write, (l[:-2] + '\n' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt
UNIX转DOS:python -c "import sys; map(sys.stdout.write, (l[:-1] + '\r\n' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt
总结
还有其它DOS和UNIX文本文件的转换方法,我个人推荐使用vim命令。但是,对于大型的文件,推荐使用perl工具,你也不希望在vim或Emacs中打开几个G的文本文件。
DOS和UNIX文本文件之间相互转换的方法的更多相关文章
- python datetime和unix时间戳之间相互转换
python datetime和unix时间戳之间相互转换 1.代码: import time import datetime # ...
- dos与unix文件格式之间的转换
1. VI编辑器中转换 在VI中使用命令 set ff?(fileformat)可以查看文件的格式,使用set ff=dos(unix)可以设置文件的格式 2.使用sed处理(来至http://www ...
- win32内核程序中进程的pid,handle,eprocess之间相互转换的方法
很有用,收下以后方便查询. 原贴地址:http://bbs.pediy.com/showthread.php?t=119193 在win32内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需 ...
- C# DataTable 和List之间相互转换的方法
介绍:List/IEnumerable转换到DataTable/DataView,以及DataTable转换到List 正文: 一.List<T>/IEnumerable转换到DataTa ...
- 转 C# DataTable 和List之间相互转换的方法
一.List/IEnumerable转换到DataTable/DataView 方法一: /// <summary> /// Convert a List{T} to a DataTabl ...
- 关于数组和List之间相互转换的方法
1.List转换成为数组:返回数组的运行时类型.如果列表能放入指定的数组.否则,将根据指定数组.如果指定的数组的元素比列表的多),那么会将存储列表元素的数组. 返回:包含列表元素的list.add(& ...
- json对象与javaBean,String字符创之间相互转换的方法
原创:转载请注明出处 package com.allcam.system.utils; import com.fasterxml.jackson.databind.ObjectMapper; publ ...
- C# DataTable 和List之间相互转换的方法(转载)
来源:https://www.cnblogs.com/shiyh/p/7478241.html 一.List<T>/IEnumerable转换到DataTable/DataView 方法一 ...
- protobuf与json相互转换的方法
google的protobuf对象转json,不能直接使用FastJson之类的工具进行转换,原因是protobuf生成对象的get方法,返回的类型有byte[],而只有String类型可以作为jso ...
随机推荐
- Android 小知识点(持续更新)
①文件保存默认是private权限. ②在layout的xml文件中onClick的方法中包含一个View类型的参数 ③获取项目下files路径:Context.getFilesDir(); ④获取项 ...
- 基于Delphi的Socket I/O模型全接触 good
老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系.他们的信会被邮递员投递到他们的信箱里. 这和Socket模型非常类似.下面我就以老陈接收信件为例讲解Socket I/O模型. 一:se ...
- 制作LOGO的35种方法
A logo design is really a graphical element (ideogram, symbol, emblem, icon, sign) that, along with ...
- bzoj1559
自动机上状压dp,把单词是否存在压成二进制位注意这里面某些单词会包含其他单词,所以某些自动机上有些状态点对应多个二进制位方案只要再顺着有方案的状态搜一遍即可 ..,'a'..'z'] of longi ...
- JavaScript用JQuery呼叫Server端方法
准备好Server端的方法 [System.Web.Services.WebMethod] public static string VeryUserName(string name) { strin ...
- 用C++试着完成Python简明教程后面的练习
试图存取文件的部分无法完成.代码已提交到github.
- 【转】Android中如何使用Bundle传递对象[使用Serializable或者Parcelable] -- 不错
原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1211/694.html Android中Bundle类的作用 Bun ...
- <转>如何将Chrome变成开发利器,开发者们在用这些插件
Chrome 浏览器具有强大的跨平台能力以及丰富的扩展插件,一直是许多开发者的首要选择.而利用许多 Chrome 插件,开发者们在开发流程中能够极大地提高开发效率.我们就整理了十款开发者常用的 Chr ...
- windows下面配置jdk环境变量
在环境变量中添加如下: Path D:\Program Files\Java\jdk1.6.0_26\binJAVA_HOME D:\Program Files\Java\jdk1.6.0_26CLA ...
- 今天遇到的mouseout和mouseleave之坑
时间紧 简短的说就是: mouseout是离开其子元素也会触发 mouseleave是离开指定的那个元素才触发