DOS / UNIXとその逆の変換

UNIXまたはLinuxからDOSオペレーティングシステムに、またはその逆にテキストファイルを変換するためのユーティリティソフトウェアがいくつかあります。 しかし、それは常に手動変換を知るのに役立ちます。 UNIXやLinuxなどのシェルプログラミング言語では、テキストファイルは改行としても知られる改行演算子 "\ n"で終わり、そのASCIIコードは0Aです。 DOSテキストファイルは、キャリッジリターンまたはエントリキー "\ r"で行を終了します。そのASCIIコードは0Dです。 DOSの行はCRLFまたは "\ r \ n"で終わります。 このDOSテキストをUNIXまたはLinuxに変換するには、 "\ r"を消去します。 GNU-sedバージョンを使用している場合は、ASCIIコードも使用できます。 UNIXからDOSまでは、 "\ r"を追加するか、またはASCIIコードを使用して記号的にGNU-sed表記を使用することができます。

イントロ

このタスクを実行できるユーティリティプログラム(dos2unixとunix2dos)がありますが、ここでこれらの機能を手動で作成する方法に関する簡単なヒントを示します。

DOSからUNIXへの変換/ UNIXからDOSへの変換

Unix環境下のテキストファイルは、その行の終わりに記号"\ n"を付けています (Line Feedと呼ばれ、LFと記されています、ASCIIコード= 0A)。

DOS下のテキストファイルは "line"で、行の終わりはシンボル"\ r" (Carriage Returnと呼ばれ、CR、ASCII 0Dと記されています)で終わります。

したがって、DOSファイルの各行はCRLFシーケンス、つまり\ r \ nで終わります。

DOSからUNIXへの変換

行末の"\ r" (キャリッジリターン)を削除するだけです。

"\ r"は記号的に "^ M"で表され、これは以下のキーのシーケンス "CTRL-V" + "CTRL-M"で得られます。

 sedの/ ^ M $ // 'ファイル 

注意:

GNU-sed(gsed 3.02.80)バージョンでは、ASCII表記を使うことができます。

 sedの/ \ x0D $ // 'ファイル 

UNIXからDOSへの変換

前のコマンドの反対、つまり(^ Mは同じ方法で入力されている(CTRL-V + CTRL-M)):

 sedの/ $ / ^ M / 'ファイル 

注意:

GNU-sed(gsed 3.02.80)バージョンでは、記号表記 "\ r"を使うことができます。

 sedの/ $ / \ r / 'ファイル 
前の記事 次の記事

トップのヒント