Dos文件到Unix文件批量转换小方法是什么?
对于经常在Unix和Windows下同时进行软件开发的人来说,文件格式转换是进行需要做的事,由于Unix操作系统下换行符是字符\n, 而Windows操作系统下换行符是字符\r\n,所以在这两个操作系统下传输文件时需要进行格式转换,Unix环境下的文件格式转换工具有dos2unix命令,Windows环境下可以用UltraEdit进行转换,但是平常我们一般都是用它们进行单个文件的转换,如果要进行批量转换,Unix下需要自己写shell脚本,Windows环境下需要进行批量替换,具体方法如下:1。 Unix环境下Dos格式文件批量替换为Unix文件
#!/bin/bash
showUsa...全部
对于经常在Unix和Windows下同时进行软件开发的人来说,文件格式转换是进行需要做的事,由于Unix操作系统下换行符是字符\n, 而Windows操作系统下换行符是字符\r\n,所以在这两个操作系统下传输文件时需要进行格式转换,Unix环境下的文件格式转换工具有dos2unix命令,Windows环境下可以用UltraEdit进行转换,但是平常我们一般都是用它们进行单个文件的转换,如果要进行批量转换,Unix下需要自己写shell脚本,Windows环境下需要进行批量替换,具体方法如下:1。
Unix环境下Dos格式文件批量替换为Unix文件
#!/bin/bash
showUsage()
{
echo "Usage: dos2unixdir [destdir]"
exit 0
}dir=$PWD
if [ $# -gt 1 ]
then
showUsage
fiif [ $# -gt 0 ]
then
dir=$1
fifor i in `find $dir`
do
if [ ! -d $i ]
then
echo "processing file。
。。" $i
dos2unix $i $i
fi
done
或
dos2unix 实际上就是把文本文件里面的^M删除,我一般懒得用这个命令,vi里面用一个命令(:%s/^m//g)删除即可。
用法举例:
dos2unix a。
txt b。txt
要把一批文件都dos2unix,可以用下面的for语句:
for f in *。txt 或for f in *
do
dos2unix $f
done
注:*表示当前目录中所有文件的名字
2。
Windows环境下Dos格式文件批量替换为Unix文件在UltraEdit中选择Search | Search in files菜单,在Find框中填写^p(表示DOS文件中的回车换行符号),在Replace with中输入^n(表示UNIX文件中的回车换行符号)。
然后选择文件目录进行批量替换,可以进行扩展名过滤
http://blog。chinaunix。net/u3/94271/showart_2291548。html
关于从UNIX到DOS格式的批量修改
从西门子bsc下载的asc文件可能都是UNIX格式的,我们在处理的时候需要把它们都转换成dos格式,这就需要一个批量转换的过程。
首先要明确2个问题:
1。UNIX格式和DOS格式就我所知区别只是在于回车这个字符。UNIX格式下,每行的回车都是用一个0x0a字符表示的;而DOS格式下,每行的回车都是用0x0d0a两个字符表示的。
所以我们只需要替换这个即可。
2。UltraEdit本身就具备多文件批量替换的功能。
所以我们可以这样做:
1。打开UltraEdit
2。选择在文件中替换
3。在查找中输入: ^n (代表在UNIX格式下的回车字符)
4。
在替换中输入: ^P (代表在DOS格式下的回车字符)
5。选择文件类型为*。asc
6。选择好需要转换的所有文件所在目录
7。OK点全部替换
这样就大功告成了,是不是超简单呢?根本需要写什么批处理程序。
关键是明白我上面提到的2点就OK了。收起