Linux命令学习总结:dos2unix

来源:互联网 发布:定义变量java 编辑:程序博客网 时间:2024/06/05 17:01

今天第一次接触这个,做个记录,最近觉得linux的东西知道的太少了,不行,得好好看点资料了。


命令简介:

dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。

而unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为Windows格式文件的命令。

 

命令语法

 

dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]

unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]

 

命令参数:

此命令参数是Red Hat Enterprise Linux Server release 5.7下dos2unix命令参数,不同版本Linux的dos2nnix命令参数有可能不同。

参数

长参数

描叙

-h

 

显示命令dos2unix联机帮助信息。

-k

 

保持文件时间戳不变

-q

 

静默模式,不输出转换结果信息等

-V

 

显示命令版本信息

-c

 

转换模式

-o

 

在源文件转换,默认参数

-n

 

保留原本的旧档,将转换后的内容输出到新档案.默认都会直接在原来的文件上修改,

 

使用示例:

1: 查看dos2unix命令的帮助信息

[root@DB-Server myscript]# man dos2unix
 
[root@DB-Server myscript]# dos2unix -h
dos2unix Copyright (c) 1994-1995 Benjamin Lin
         Copyright (c) 1998      Bernd Johannes Wuebben (Version 3.0)
         Copyright (c) 1998      Christian Wurll (Version 3.1)
Usage: dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
 -h --help        give this help
 -k --keepdate    keep output file date
 -q --quiet       quiet mode, suppress all warnings
                  always on in stdin->stdout mode
 -V --version     display version number
 -c --convmode    conversion mode
 convmode         ASCII, 7bit, ISO, Mac, default to ASCII
 -l --newline     add additional newline in all but Mac convmode
 -o --oldfile     write to old file
 file ...         files to convert in old file mode
 -n --newfile     write to new file
 infile           original file in new file mode
 outfile          output file in new file mode

 

2: dos2unix filename 将Windows格式文本转换为Unix&Linux格式文件

   1: [root@DB-Server myscript]# cat -v test.sh 
   2: . /home/oracle/.bash_profile^M
   3: echo ' '^M
   4: date^M
   5: echo ' '^M
   6: ^M
   7: sqlplus test/test @/home/oracle/scripts/test.sql^M
   8: ^M
   9: echo ' '^M
  10: date^M
  11: echo ' '^M
  12: [root@DB-Server myscript]# dos2unix test.sh 
  13: dos2unix: converting file test.sh to UNIX format ...
  14: [root@DB-Server myscript]# cat -v test.sh 
  15: . /home/oracle/.bash_profile
  16: echo ' '
  17: date
  18: echo ' '
  19:  
  20: sqlplus test/test @/home/oracle/scripts/test.sql
  21:  
  22: echo ' '
  23: date
  24: echo ' '

 

3: dos2unix 可以一次转换多个文件

   1: dos2unix filename1 filename2 filename3

 

4: 默认情况下会在源文件上进行转换,如果需要保留源文件,那么可以使用参数-n dos2unix -n oldfilename newfilename

   1: [root@DB-Server myscript]# dos2unix -n dosfile linuxfile
   2: dos2unix: converting file dosfile to file linuxfile in UNIX format ...
   3: [root@DB-Server myscript]# cat -v dosfile 
   4: it is a windows dos file^M
   5: you should convert to unix&linux format^M
   6: [root@DB-Server myscript]# cat -v linuxfile 
   7: it is a windows dos file
   8: you should convert to unix&linux format
   9: [root@DB-Server myscript]# 

clip_image001

 

5:保持文件时间戳不变

   1: [root@DB-Server myscript]# ls -lrt dosfile 
   2: -rw-r--r-- 1 root root 67 Dec 26 11:46 dosfile
   3: [root@DB-Server myscript]# dos2unix dosfile 
   4: dos2unix: converting file dosfile to UNIX format ...
   5: [root@DB-Server myscript]# ls -lrt dosfile 
   6: -rw-r--r-- 1 root root 65 Dec 26 11:58 dosfile
   7: [root@DB-Server myscript]# dos2unix -k dosfile 
   8: dos2unix: converting file dosfile to UNIX format ...
   9: [root@DB-Server myscript]# ls -lrt dosfile 
  10: -rw-r--r-- 1 root root 65 Dec 26 11:58 dosfile

6:静默模式格式化文件

   1: [root@DB-Server myscript]# unix2dos -q dosfile 
   2:  
   3: [root@DB-Server myscript]# 

dos2unix的下载地址为http://sourceforge.net/projects/dos2unix/ ,可以从上面下载最新版本的dos2unix、unix2dos等命令工具以及相关文档,dos2unix的源码如下所示

   1: /*
   2: 
   3: *  Name: dos2unix
   4: 
   5: *  Documentation:
   6: 
   7: *    Remove cr ('\x0d') characters from a file.
   8: 
   9: *
  10: 
  11: *  The dos2unix package is distributed under FreeBSD style license.
  12: 
  13: *  See also http://www.freebsd.org/copyright/freebsd-license.html
  14: 
  15: *  --------
  16: 
  17: *
  18: 
  19: *  Copyright (C) 2009-2015 Erwin Waterlander
  20: 
  21: *  Copyright (C) 1998 Christian Wurll
  22: 
  23: *  Copyright (C) 1998 Bernd Johannes Wuebben
  24: 
  25: *  Copyright (C) 1994-1995 Benjamin Lin.
  26: 
  27: *  All rights reserved.
  28: 
  29: *
  30: 
  31: *  Redistribution and use in source and binary forms, with or without
  32: 
  33: *  modification, are permitted provided that the following conditions
  34: 
  35: *  are met:
  36: 
  37: *  1. Redistributions of source code must retain the above copyright
  38: 
  39: *     notice, this list of conditions and the following disclaimer.
  40: 
  41: *  2. Redistributions in binary form must reproduce the above copyright
  42: 
  43: *     notice in the documentation and/or other materials provided with
  44: 
  45: *     the distribution.
  46: 
  47: *
  48: 
  49: *  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
  50: 
  51: *  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  52: 
  53: *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  54: 
  55: *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
  56: 
  57: *  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  58: 
  59: *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  60: 
  61: *  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  62: 
  63: *  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  64: 
  65: *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  66: 
  67: *  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  68: 
  69: *  IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  70: 
  71: *
  72: 
  73: *  == 1.0 == 1989.10.04 == John Birchfield (jb@koko.csustan.edu)
  74: 
  75: *  == 1.1 == 1994.12.20 == Benjamin Lin (blin@socs.uts.edu.au)
  76: