文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>DOS、Mac 和 Unix 文件格式

DOS、Mac 和 Unix 文件格式

时间:2009-07-14  来源:FredDent

DOS、Mac 和 Unix 文件格式       相信很多朋友都碰到过这三种文件格式的互换问题,今日又碰到这个问题,忽然想 寻根问底,于是整理了本文档。     文件格式区别
   我们先看看这三个家伙有啥区别。很久以前,人们用老式的电传打字机作为输入设备,它使用
两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,<CR>),另一个字符把纸上移一行 (称为换行,<LF>)。
   当计算机问世后,由于存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。于是
UNIX 开发者决定他们可以用 <Line Feed> 一个字符来表示行尾。Apple 开发者规定了用 <CR>。 开发 MS-DOS (以及微软视窗) 的那些家伙则决定沿用老式的 <CR><LF>。三种行尾格式如下:
        unix            <LF>
        dos             <CR><LF>
        mac             <CR>
   这意味着,如果你试图把一个文件从一种系统移到另一种系统,那么你就有换行符方面的麻烦。
    转换    有需求就会有动力。在Windows平台,有强大的UltraEdit,它支持DOS、Mac 和 Unix 三种文 件格式的任意互换。在【文件】->【转换】选项卡下有相应的对应选项,很傻很强大。下面我们看看在Unix/Linux平台该如何做呢?   方法一:强大的dos2unix    dos2unix filename   方法二:强大的脚本    sed 's/^M//' filename > tmp_filename    其中^M是同时Ctrl+V+M按出来的,表示回车。    tr -d "\r" filename    cat filename | perl -pe '~s/\r//g' > tmp_filename   方法三:强大的vim     vim  filename       
    :set fileformat=unix
    :w 
    vim  filename      :%s/^M//g     :w    与vi不同,vim具有自动识别功能,只需如下设置就可以自动进行转换。不过由于Mac格式比较特殊,vim对mac格式的自动探测可能会出错。请参考:http://vimcdoc.sourceforge.net/doc/usr_23.html     vim  filename     :set fileformats=unix,dos,mac     批量转换    有时候我们可能希望对这种转换进行批量处理。在Windows下有强大的UltraEdit,用全局replace的方法或者建立工程的方法可以批量转换,请参考http://tech.ddvip.com/2007-10/119380983936863.html。Windows平台下还有很多相关的小工具,如MultiU2D等,google一下吧。       在Unix/Linux平台下我们就要借助脚本文件或者通道了,实质上是上述几种方法的自动化。下面举几个简单例子,来源自http://bbs.chinaunix.net/viewthread.php?tid=412957&extra=&page=1: 脚本1: ls -l | awk '{print $8}' > filename.txt
N=1
NN=`wc -l filename.txt | awk '{print $1}'`
while [ "$N" -le "$NN" ]; do
  TempLine=`sed -n "$N"p "filename.txt"`
  if [ -n "$TempLine" ]; then            
    tmpfilename=$TempLine
    dos2ux $tmpfilename > file
    mv file $tmpfilename 
  fi
  N=$(($N + 1))
done
  脚本2: for XFILE in $(egrep -l ^M `find . -name "*.txt";find . -name "*.sql"`)
  do
    echo "开始处理文件"$XFILE
    if [ -s $XFILE ]
    then
      TMPFILE=$XFILE.tmp
      mv $XFILE $TMPFILE
      tr -d "\r" < $TMPFILE > $XFILE
      rm $TMPFILE
    else
      continue
    fi
done
  通道法: find . -type f |xargs -i dos2unix {}     后记    对于Mac格式转换到其他两种格式的方法类似,在类Unix环境下有dos2unix/mac2unix工具。    在计算机世界,格式转换无处不在,如字符格式、压缩格式、网络协议格式、音视频格式等等。所以进行相关工作时,应该多多留意。
相关阅读 更多 +
排行榜 更多 +
盒子小镇2游戏手机版下载

盒子小镇2游戏手机版下载

冒险解谜 下载
世界盒子模组版下载最新版本

世界盒子模组版下载最新版本

模拟经营 下载
音乐搜索app最新版本下载

音乐搜索app最新版本下载

趣味娱乐 下载