溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么將文本文件在Unix和DOS格式之間轉(zhuǎn)換

發(fā)布時(shí)間:2021-10-22 13:46:13 來(lái)源:億速云 閱讀:316 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章將為大家詳細(xì)講解有關(guān)怎么將文本文件在Unix和DOS格式之間轉(zhuǎn)換,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

作為一名 Linux 管理員,你可能已經(jīng)注意到了一些開發(fā)者請(qǐng)求將文件從 DOS 格式轉(zhuǎn)換為 Unix 格式,反之亦然。

這是因?yàn)檫@些文件是在 Windows 系統(tǒng)上創(chuàng)建的,并由于某種原因被復(fù)制到 Linux 系統(tǒng)上。

這本身沒(méi)什么問(wèn)題,但 Linux 系統(tǒng)上的一些應(yīng)用可能不能理解這些新的換行符,所以在使用之前,你需要轉(zhuǎn)換它們。

DOS 文本文件帶有回車(CR 或 \r)和換行(LF 或 \n)一對(duì)字符作為它們的換行符,而 Unix 文本只有換行(LF)符。

有很多方法可以將 DOS 文本文件轉(zhuǎn)換為 Unix 格式。

但我推薦使用一個(gè)名為 dos2unix / unix2dos 的特殊工具將文本在 DOS 和 Unix 格式之間轉(zhuǎn)換。

  • dos2unix :將文本文件從 DOS 格式轉(zhuǎn)換為 Unix 格式。

  • unix2dos :將文本文件從 Unix 格式轉(zhuǎn)換為 DOS 格式。

  • tr、awk 和 sed 命令:這些可以用于相同的目的。

使用 od八進(jìn)制轉(zhuǎn)儲(chǔ)octal dump)命令可以很容易地識(shí)別文件是 DOS 格式還是 Unix 格式,如下圖所示:

# od -bc windows.txt0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157U n i x i s a f r e e o0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164p e n s o u r c e o p e r a t0000040 151 156 147 040 163 171 163 164 145 155 015 012 123 165 160 145i n g s y s t e m \r \n S u p e0000060 162 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040r c o m p u t e r s a r e0000100 162 165 156 156 151 156 147 040 157 156 040 125 116 111 130 015r u n n i n g o n U N I X \r0000120 012 071 065 045 040 157 146 040 167 145 142 163 151 164 145 163\n 9 5 % o f w e b s i t e s0000140 040 141 162 145 040 162 165 156 156 151 156 147 040 157 156 040a r e r u n n i n g o n0000160 114 151 156 165 170 040 117 123 015 012 101 156 171 164 150 151L i n u x O S \r \n A n y t h i0000200 156 147 040 143 141 156 040 142 145 040 144 157 156 145 040 157n g c a n b e d o n e o0000220 156 040 114 151 156 165 170 015 012n L i n u x \r \n0000231

上面的輸出清楚地表明這是一個(gè) DOS 格式的文件,因?yàn)樗宿D(zhuǎn)義序列 \r\n。

同時(shí),當(dāng)你在終端上打印文件輸出時(shí),你會(huì)得到下面的輸出:

# cat windows.txtUnix is a free opensource operating systemSuper computers are running on UNIX95% of websites are running on Linux OSAnything can be done on Linux

如何在 Linux 上安裝 dos2unix?

dos2unix 可以很容易地從發(fā)行版的官方倉(cāng)庫(kù)中安裝。

對(duì)于 RHEL/CentOS 6/7 系統(tǒng),使用 yum 命令 安裝 dos2unix

$ sudo yum install -y dos2unix

對(duì)于 RHEL/CentOS 8 和 Fedora 系統(tǒng),使用 dnf 命令 安裝 dos2unix。

$ sudo yum install -y dos2unix

對(duì)于基于 Debian 的系統(tǒng),使用 apt 命令 或 apt-get 命令 來(lái)安裝 dos2unix

$ sudo apt-get update$ sudo apt-get install dos2unix

對(duì)于 openSUSE 系統(tǒng),使用 zypper命令 安裝 dos2unix。

$ sudo zypper install -y dos2unix

1)如何將 DOS 文件轉(zhuǎn)換為 UNIX 格式?

以下命令將 windows.txt 文件從 DOS 轉(zhuǎn)換為 Unix 格式。

對(duì)該文件的修改是刪除文件每行的 \r

# dos2unix windows.txtdos2unix: converting file windows.txt to Unix format …
# cat windows.txt0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157U n i x i s a f r e e o0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164p e n s o u r c e o p e r a t0000040 151 156 147 040 163 171 163 164 145 155 012 123 165 160 145 162i n g s y s t e m \n S u p e r0000060 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040 162c o m p u t e r s a r e r0000100 165 156 156 151 156 147 040 157 156 040 125 116 111 130 012 071u n n i n g o n U N I X \n 90000120 065 045 040 157 146 040 167 145 142 163 151 164 145 163 040 1415 % o f w e b s i t e s a0000140 162 145 040 162 165 156 156 151 156 147 040 157 156 040 114 151r e r u n n i n g o n L i0000160 156 165 170 040 117 123 012 101 156 171 164 150 151 156 147 040n u x O S \n A n y t h i n g0000200 143 141 156 040 142 145 040 144 157 156 145 040 157 156 040 114c a n b e d o n e o n L0000220 151 156 165 170 012i n u x \n0000225

上面的命令將覆蓋原始文件。

如果你想保留原始文件,請(qǐng)使用以下命令。這將把轉(zhuǎn)換后的輸出保存為一個(gè)新文件。

# dos2unix -n windows.txt unix.txtdos2unix: converting file windows.txt to file unix.txt in Unix format …
1a)如何使用 tr 命令將 DOS 文件轉(zhuǎn)換為 UNIX 格式。

正如文章開頭所討論的,你可以如下所示使用 tr 命令將 DOS 文件轉(zhuǎn)換為 Unix 格式。

Syntax: tr -d '\r' < source_file > output_file

下面的 tr 命令將 DOS 格式的文件 windows.txt 轉(zhuǎn)換為 Unix 格式文件 unix.txt。

# tr -d '\r' < windows.txt >unix.txt

注意:不能使用 tr 命令將文件從 Unix 格式轉(zhuǎn)換為 Windows(DOS)。

1b)如何使用 awk 命令將 DOS 文件轉(zhuǎn)換為 UNIX 格式。

使用以下 awk 命令格式將 DOS 文件轉(zhuǎn)換為 Unix 格式。

Syntax: awk '{ sub("\r$", ""); print }' source_file.txt > output_file.txt

以下 awk 命令將 DOS 文件 windows.txt 轉(zhuǎn)換為 Unix 格式文件 unix.txt。

# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt

2)如何將 UNIX 文件轉(zhuǎn)換為 DOS 格式?

當(dāng)你把一個(gè)文件從 UNIX 轉(zhuǎn)換為 DOS 格式時(shí),它會(huì)在每一行中添加一個(gè)回車(CR 或 \r)。

# unix2dos unix.txtunix2dos: converting file unix.txt to DOS format &hellip;

該命令將保留原始文件。

# unix2dos -n unix.txt windows.txtunix2dos: converting file unix.txt to file windows.txt in DOS format &hellip;
2a)如何使用 awk 命令將 UNIX 文件轉(zhuǎn)換為 DOS 格式?

使用以下 awk 命令格式將 UNIX 文件轉(zhuǎn)換為 DOS 格式。

Syntax: awk 'sub("$", "\r")' source_file.txt > output_file.txt

下面的 awk 命令將 unix.txt 文件轉(zhuǎn)換為 DOS 格式文件 windows.txt。

# awk 'sub("$", "\r")' unix.txt > windows.txt

關(guān)于“怎么將文本文件在Unix和DOS格式之間轉(zhuǎn)換”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI