原链接:http://m.blog.sina.com.cn/s/blog_7226f3660100uipz.html#page=4
cat -A可以显示是文件换行符编码,windows换行符^M ,linux换行符是$
linux下删除windows换行符^M 所以需要将^M(也就是\r)字符删掉
cat a.txt | tr -d "^M" > b.txt
dos2unix
for i in `ls */10*/user.properties`;do echo "-- $i --";cat $i;done
for i in */*/webip.properties;do echo $i;cat $i;echo;done
find -name '.DS_Store'|xargs rm -f
find -name '.svn' -type d |xargs rm -rf
find -name '._.DS_Store' -type f |xargs rm -rf
Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式
用途说明
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。
常用参数
将DOS格式文本文件转换成Unix格式,最简单的用法就是dos2unix直接跟上文件名。
格式:dos2unix file
如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)
格式:dos2unix file1 file2 file3
格式:dos2unix -o file1 file2 file3
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。
格式:dos2unix oldfile newfile
如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。
格式:dos2unix -k file
格式:dos2unix -k file1 file2 file3
格式:dos2unix -k -o file1 file2 file3
格式:dos2unix -k -n oldfile newfile
注:unix2dos命令的使用方式与dos2unix命令的类似。
使用示例
示例一 DOS格式文本文件在Linux下的表现
现在有一个脚本文件job.sh,是在Linux下用vi编辑的。
[root@jfht ~]# cat job.sh
#!/bin/sh
date >job.txt
现在把它转换成DOS格式文本文件。
[root@jfht ~]# unix2dos job.sh
unix2dos: converting file job.sh to DOS format ...
尝试着运行一下。
[root@jfht ~]# ./job.sh
-bash: ./job.sh: 权限不够
[root@jfht ~]# chmod +x job.sh
[root@jfht ~]# ./job.sh
-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录
DOS格式的脚本文件时无法解释执行的,因为脚本文件的第一行是用来指定解释器的,Linux系统认为解释器是/bin/sh^M,而不是/bin/sh。
我们来通过Linux下的一些命令来看一下DOS格式文件的真面目。
[root@jfht ~]# cat -v job.sh <== cat -v可以看到文件中的非打印字符,而不带-v参数的cat命令不行。
#!/bin/sh^M
^M
date >job.txt^M
^M
[root@jfht ~]# hexdump -C job.sh <== hexdump -C可以看到文件每个字节的十六进制表示。
00000000 23 21 2f 62 69 6e 2f 73 68 0d 0a 0d 0a 64 61 74 |#!/bin/sh....dat|
00000010 65 20 3e 6a 6f 62 2e 74 78 74 0d 0a 0d 0a |e >job.txt....|
0000001e
[root@jfht ~]# vi job.sh <== 使用vi打开时可以看到底下有[dos]的格式提示。有些版本vi显示的是行尾为^M。
#!/bin/sh
date >job.txt
~
~
'job.sh' [dos ] 4L, 30C
现在我们把DOS格式改回Unix格式的,看看效果。
root@jfht ~]# dos2unix job.sh
dos2unix: converting file job.sh to UNIX format ...
[root@jfht ~]# ./job.sh
可以执行了,不再报“-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录”这个错了。
[root@jfht ~]#
示例二 dos2unix -k和dos2unix -n的使用示例
[root@jfht ~]# cat <<EOF >1.txt
> 1
> 2
> 3
> EOF
[root@jfht ~]# file 1.txt
1.txt: ASCII text
[root@jfht ~]# ls -l 1.txt
-rw-r--r-- 1 root root 6 11-14 09:08 1.txt
[root@jfht ~]# date
2010年 11月 14日 星期日 09:28:42 CST
[root@jfht ~]# unix2dos -k 1.txt <== 保持文件时间戳
unix2dos: converting file 1.txt to DOS format ...
[root@jfht ~]# ls -l 1.txt
-rw-r--r-- 1 root root 9 11-14 09:08 1.txt
[root@jfht ~]# dos2unix -n 1.txt 2.txt <== 将1.txt转换到2.txt
dos2unix: converting file 1.txt to file 2.txt in UNIX format ...
[root@jfht ~]# ls -l 1.txt 2.txt
-rw-r--r-- 1 root root 9 11-14 09:08 1.txt
-rw-r--r-- 1 root root 6 11-14 09:30 2.txt
[root@jfht ~]# file 1.txt 2.txt
1.txt: ASCII text, with CRLF line terminators
2.txt: ASCII text
[root@jfht ~]# cat -v 1.txt
1^M
2^M
3^M
[root@jfht ~]# cat -v 2.txt
1
2
3
[root@jfht ~]#
分享到:
相关推荐
设计任务<br>(1)为Windows操作系统建立兼容的DOS命令接口,文件与目录命令<br>(2)具体命令:DIR,RD,CD,MD,DEL,MOVE,REN,XCOPY,命令格式可参考Windows的CMD.EXE或MS-DOS提供的命令格式<br>(3)设计命令的名称,参数等...
**dos2unix Linux 安装包详解** dos2unix 是一款在 Unix/Linux 系统中使用的工具,用于转换文本文件的格式,确保它们在不同操作系统之间兼容。它主要用于消除DOS/Windows系统与Unix/Linux系统之间的文本文件格式...
1、由于windows平台与linux平台下的换行符不同,因此在不同... #命令格式:unix2dos <源文件> <目标文件> d) dos2unix #linux下的可执行文件,将windows文档转换到linux下 #命令格式:dos2unix <源文件> <目标文件>
2. **使用dos2unix**:`dos2unix`的基本用法是`dos2unix 文件名`,它会将指定的文件从DOS/Windows格式转换为Unix/Linux格式。如果想转换整个目录下的所有文本文件,可以使用通配符,如`dos2unix /path/to/directory/...
7. 反向转换:如果需要将UNIX/Linux格式的文件转换回DOS/Windows格式,可以使用`unix2dos`命令,它是dos2unix工具的一部分。 8. 注意事项:转换前最好备份原文件,以防意外。同时,dos2unix不适用于二进制文件,只...
标题中的“dos2unix”是一个在Unix/Linux系统中使用的工具,用于将文本文件从DOS/Windows格式转换为Unix/Linux格式。这个工具处理的主要问题是换行符的不同:DOS/Windows使用CRLF(回车+换行)作为行结束符,而Unix/...
只要下载该安装包然后执行rpm -ivh unix2dos-2.2-35.el6.x86_64.rpm 以后就可以在linux下执行unix2dos命令
【dos2unix_6.0.3】是一个用于在不同操作系统之间进行文本文件格式转换的实用程序,尤其针对从DOS或Windows系统到UNIX或Linux系统的情况。这个工具的主要功能是将那些使用CRLF(回车换行)作为行结束符的DOS/Windows...
linux中没有dos2UNIX命令怎么解决办法,dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX ...因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。
unix2dos批量转换工具(双向) MS桌面版 前一版描述较不祥细,以至于很同朋友不知道可以选择多个文件拖放,故在此多啰嗦几句。 注明:1、窗口支持拖放,单文件或多文件同时拖放均可 2、新版本添加文件列表窗口中点...
在Windows系统中,将这两个工具的可执行文件(如压缩包内的dos2unix.exe和unix2dos.exe)放入System32目录后,用户可以通过命令提示符(cmd)直接调用它们。例如,如果你想要转换一个名为“example.txt”的文件,你...
### Unix/Linux命令大全知识点 #### 一、启动、关机、登入、登出相关命令 - **登录**:`<login>` - 用户登录系统。 - **登出**:`<logout>` - 用户登出系统。 - **登出**:`<exit>` - 退出当前会话。 - **停止系统...
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志...
3. **命令行使用**:在Windows下,用户可以通过命令提示符(CMD)或PowerShell调用dos2unix.exe,如`dos2unix file.txt`,这会将file.txt转换为Linux格式。命令行选项允许用户指定输出文件名、批量转换文件等。 4. ...
- `unix2dos`:与dos2unix相反,将UNIX格式的文件转换为DOS格式。 - `fromdos` 和 `todos`:这两个命令是dos2unix的别名,功能相同。 5. **批量处理**: - 可以通过通配符(如`*`或`?`)一次性转换多个文件,...
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的
- `unix2dos file.txt`:将file.txt的换行符从LF转换为CRLF。 - `dos2unix -b *`:批量转换当前目录下所有文件。 - `dos2unix -h`:查看dos2unix的帮助信息。 了解并掌握dos2unix的使用,对于经常进行跨平台开发、...
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式 最简单的用法就是dos2unix直接跟上文件名:dos2unix file -k:保持输出文件的日期不变 -q:安静模式,不提示任何警告信息。 -V:查看版本 -c:转换模式,模式有...
### Linux命令大全:深入解析关键命令 #### 一、`sync` 命令 - **功能概述**:`sync` 命令是Linux系统中的一个重要工具,用于同步文件系统的缓存到物理磁盘上。它确保了任何在内存缓存中的数据都被写入磁盘,从而...
1. **选择正确的模式**:使用`dos2unix`将DOS格式转换为UNIX格式,反之,使用`unix2dos`将UNIX格式转换为DOS格式。 2. **备份文件**:转换前,确保对重要文件进行备份,以防意外情况。 3. **批量转换**:使用...