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 ...
随机推荐
- Img图片超过了DIV的最大宽度 解决方案
在该图片所在的div限定一下里边所有的图片的最大长度,这个长度的值可以是div的长度的略小即可. 例如: <div class="content" style="w ...
- java.lang.UnsupportedClassVersionError(java项目版本一致问题)
报此错误,一般都是由于在myeclipse中的java项目是用高版本(jdk1.6之后)的jdk进行编译后生成的class文件,却要运行在低版本的jdk虚拟机上,导致这个错误 解决办法: 在myecl ...
- SpringSecurity简单应用(二)
这里我首先对我上一篇博文的第三个实例做一下讲解,下面是applicationContext-security.xml内容如下: <?xml version="1.0" enc ...
- 记录一下MYSQL的SQL语法
这是加时间的语法 update mylog set mydate= DATE_ADD( mydate, INTERVAL 13 HOUR) WHERE mydate BETWEEN '2014-0 ...
- bzoj2242
快速幂 扩展欧几里得 baby-step-giant-step 可以自行baidu 程序附部分注释 ; type link=^node; node=record re,wh:l ...
- 【Bower】
Bower Bower:客户端库管理工具 Day 1: Bower —— 管理你的客户端依赖关系 bower解决js的依赖管理
- [转]笔记本Ubuntu系统关闭独显+省电降温设置
[转载者按]最近装了Ubuntu 13.04 64 bits版操作系统玩玩,但是发现两个显卡都开着,所以上网查找资料,以在不需要3D的时候关闭Nvidia显卡.通过Bumblebee软件包可以达到这一 ...
- 手动启动jenkins
无论Linux还是windows, jenkins都是作为一个后台服务存在的. 所以在Linux下,手动启动或停止jenkins: service jenkins start service jenk ...
- [LeetCode] 3Sum 解题思路
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- head tail 命令
[一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 [二]显示1000行到3000行 cat ...