window、Linux 文本文件轉換


前言

在Linux下使用vi來查看一些Windows下創建的文本文件時,有時會發現在每一行尾部有^M字符,是因為在Windows下換行使用CRLF兩個字符來表示,其中CR為回車(ASCII=0x0D),LF為換行(ASCII=0x0A),而在Linux下使用LF一個字符來表示。

1、tr命令

使用tr命令拷貝標准輸入到標准輸出,替換或者刪除掉選擇的字符,只能把DOS轉換為UNIX文件,命令如下:

tr -d ‘\r’< dosfile.txt > unixfile.txt

2、vim

vim是一個vi的改進版本,可以運行在Windows和Linux平台上,使用方法如下:

vim dosfile.txt

DOS轉UNIX:set fileformat=unix
UNIX轉DOS:set fileformat=dos
:wq

如果你需要把Unix文本文件轉換為DOS文本文件,輸入:set fileformat=dos,你也可以使用ff來替代fileformat,此時可以輸入:set ff=dos。你可以輸入:help fileformat來獲得跟多的關於選項信息。

注:為了能讓vim可以自動識別DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行設置:

 set fileformats=dos,unix

設置完成后,使用vim打開DOS文本文件就不會顯示^M字符了。

3、Perl

Perl是相當直接,你添加或刪除掉文件每行結尾的CR字符。

DOS轉UNIX:

perl -p -e ‘s/\r$//’< dosfile.txt > unixfile.txt

UNIX轉DOS:

perl -p -e ‘s/$/\r/’< unixfile.txt > dosfile.txt

總結

對於大型的文件,推薦使用perl工具;
一般情況就用tr命令;如果要unix轉dos就用vim;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM