linux下文件與Windows下文件格式的區(qū)別與轉(zhuǎn)換

問(wèn)題:

Windows下的TXT文件上傳到Linux系統(tǒng)上,用cut,grep.sed,awk等文本處理工具處理過(guò)后再次傳到Windows電腦上,發(fā)現(xiàn)內(nèi)容都連到一塊了,百度了一下才知道換行符被刪除了,

so,問(wèn)題來(lái)了,怎么處理就不會(huì)把換行符刪除?

在Windows下編寫的文件,當(dāng)在Linux下用 cat -v filename 命令查看時(shí),可以發(fā)現(xiàn)每行的結(jié)尾都有^M字符。當(dāng)我們?cè)贚inux下寫的應(yīng)用程序在讀取含有^M字符的文件時(shí),會(huì)出現(xiàn)意想不到的錯(cuò)誤。所以需要將Windows下文件的格式轉(zhuǎn)換為L(zhǎng)inux下的文件格式。

仍存在的疑惑:

在我的vi中打開(kāi)含有^M的文件,設(shè)置 :set list 只能看到以“$”表示的換行符,并沒(méi)有看到有^M字符。使用 :%/^M$//g 進(jìn)行替換也沒(méi)有找到。

注意:To get the ^M do not actually enter it as is. Insert it by typing the CTRL-V CTRL-M sequence instead.

去除^M的方法:

去除^M的方法很多,總結(jié)一些如下:

方法1:在vi中轉(zhuǎn)換文件的格式,直接輸入以下命令,然后 :wq。

:set fileformat=unix

:set fileformat=dos

方法2:使用col命令

cat file_win | col -b > file_linux

cat file_win | col -b | tee file_linux

方法3:使用tr命令

cat file_win | tr -d '/r' > file_linux

cat file_win | tr -d '/r' | tee file_linux

實(shí)例:

公司以前沒(méi)有固定的郵箱地址,現(xiàn)在想統(tǒng)一郵箱地址,所以域名備案,使用第三方的郵箱服務(wù)器;對(duì)方需要我們的人數(shù)及用戶名。人事統(tǒng)計(jì)了公司所有人的郵箱地址做成一個(gè)Excel表格發(fā)給我了。


私人照片,濫用必究

幾百個(gè)人,我要一個(gè)個(gè)的把郵箱后綴都去掉,不知道怎么Excel表格里弄,所以就想到把這一列復(fù)制到一個(gè)TXT文件中,然后上傳到我的Linux主機(jī)上,用文本處理工具處理就方便很多了。

但是處理完后,再次傳回Windows主機(jī),打開(kāi)一看,全是一堆字母。才知道換行符也被我處理了。

]# cut -d@ -f1 a.txt >b.txt 命令將提取郵箱的用戶名并保存到b.txt文件中

正確的方法

a.txt文件的內(nèi)容


個(gè)人照片,濫用必究

]# cat -v a.txt???????????????????? #看到原文件里每行結(jié)尾都有^M字符

]# cp a.txt b.txt????????????????? #備份

vi b.txt? vi?????????????????????????? #編輯

:set fileformat=unix??????????? #設(shè)置格式為Unix

:wq???????????????????????????????????? #保存退出

]# cut -d@ -f1 b.txt >c.txt? #截取b文件里的用戶名并保存到c里

vi c.txt??????????????????????????????? #編輯c

:set fileformat=dos??????????? #將格式改為dos

:wq??????????????????????????????????? #保存退出

]# sz c.txt?????????????????????????? #將文件傳到Windows上,將文件上傳至Linux上的命令是rz,程序包是lrzsz

????????????????????????????????????????????? 沒(méi)有就yum install lrzsz 安裝

參考博客:delphiwcdj的專欄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容