dos2unix和unix2dos命令使用

来源:互联网 发布:两列表格找出相同数据 编辑:程序博客网 时间:2024/05/20 21:46

http://hi.baidu.com/jackbillow/blog/item/6c05992adfc0bd2ed52af1fe.html

 

 

dos2unix, unix2dos 用来实现 DOS <=> UNIX text file 转换
aptitude install sysutils
行末:
DOS 格式 0d 0a
UNIX 格式 0a

可用功能相同的指令組合
dos2unix:
sed -i'' "s//r//" file

cat file | col -b > newfile

cat file | tr -d "/r" > newfile

cat file | tr -d "/015" > newfile

unix2dos:
sed -i'' "s/$//r/" file

sed -i'' "s/$//x0d/" file

-i后面的是单引号组成

以上适用 GNU sed, FreeBSD 下的 sed 不适用

 

------------------------------------------

 

dos2unix 命令

 

这是一个很简单的命令.功能是将DOS/MAC下的文件转化为UNIX的文本文件格式.用法详见下面.
就是这样一个简单的命令折腾了我大半天.我在用mysql查询数据库,执行的批处理放在了一个文件里.如果我执行这个文件,那个存放查询结果的 文件名字总是在后面附加一个?号.而如果我一行一行敲入命令,执行就正常.而且比较了两个文件后没有差别.还有一个奇怪的事情就是总是出现一个类似 "quit"出现mysql语法错误的提示.这个奇怪的现象使我很困惑.后来在一位老大的帮助下想到了是不是由于文件格式的差别.因为我这个文件在 windows下编辑过,后来一试,果然很灵啊.

 

SYNOPSYS
       dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
       Options:
       [-hkqV] [--help] [--keepdate] [--quiet] [--version]


DESCRIPTION
       dos2unix, the program that converts plain
       text files in DOS/MAC format to UNIX format.

OPTIONS
       The following options are available:

       -h --help
              Print online help.


       -k --keepdate
              Keep the date stamp of output file same as input file.


       -q --quiet
              Quiet mode. Suppress all warning and messages.


       -V --version
              Prints version information.


       -c --convmode convmode
              Sets conversion mode. Where convmode is one of: ASCII, 7bit,
              ISO, Mac with ASCII being the default. Simulates dos2unix under
              SunOS.
-o --oldfile file ...
              Old file mode. Convert the file and write output to it. The pro-
              gram default to run in this mode. Wildcard names may be used.


       -n --newfile infile outfile ...
              New file mode. Convert the infile and write output to outfile.
              File names must be given in pairs and wildcard names should NOT
              be used or you WILL lost your files.


EXAMPLES
       Get input from stdin and write output to stdout.

              dos2unix


       Convert and replace a.txt. Convert and replace b.txt.

              dos2unix a.txt b.txt

              dos2unix -o a.txt b.txt


       Convert and replace a.txt in ASCII conversion mode.
dos2unix a.txt -c iso b.txt


       Convert and replace b.txt in ISO conversion mode.

              dos2unix -c ascii a.txt -c iso b.txt


       Convert c.txt from Mac to Unix ascii format.


              dos2unix -c mac c.txt b.txt


       Convert and replace a.txt while keeping original date stamp.

              dos2unix -k a.txt

              dos2unix -k -o a.txt


       Convert a.txt and write to e.txt.

              dos2unix -n a.txt e.txt


       Convert a.txt and write to e.txt, keep date stamp of e.txt
same as
       a.txt.

              dos2unix -k -n a.txt e.txt


       Convert and replace a.txt. Convert b.txt and write to e.txt.

              dos2unix a.txt -n b.txt e.txt

              dos2unix -o a.txt -n b.txt e.txt


       Convert c.txt and write to e.txt. Convert and replace a.txt. Convert
       and replace b.txt. Convert d.txt and write to f.txt.

              dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
http://zhidao.baidu.com/question/49928669.html
询问dos2unix?
悬赏分:50 - 解决时间:2008-4-12 08:59
握有一些文件以前在linux下敲dos2unix *.*o可以直接转接,
现在弄到unix下敲dos2unix *.*o,出现dos2unix [-ascii] [-iso] [-7] [originalfile [convertedfile]],请问大虾是怎么回事啊???
问题补充:因为文件很多,我想编一个shell语句,循环让每个文本文件
进行dos2unix ,请问该如何编阿,
文件名为kmin0410.txt,kmin0420.txt,kmin0430.txt........kmin0850.txt。想这样
%%c/l in(41,1,85) dos2unix kmin0%%c0.txt kmin0%%c0.txt
请问shell应该如何写啊??谢谢


是把文件名写在*txt 里么,一行一个文件名,文件名用什么保存啊,写1.csh这样么,执行敲1可以么,呵呵,我太笨了,
谢谢
dos2unix 实际上就是把文本文件里面的^M删除,我一般懒得用这个命令,vi里面用一个命令(:%s/^m//g)删除即可。

用法举例:
dos2unix a.txt b.txt

要把一批文件都dos2unix,可以用下面的for语句:
for f in *.txt
do
dos2unix $f temp_111
mv temp_111 $f
done
原创粉丝点击