プログラミング学習サイト

プログラミングの学習を開始される方を対象としたプログラミング入門サイトです。

dos2unixコマンドでwindowsファイルを変換する【Linuxコマンド】

参考 : https://ss64.com/bash/dos2unix.html

dos2unix

Windowsで使用される「MS-DOS」からUnixテキストファイル形式に変換を行うコンバーターコマンドです。

DOSフォーマットとは、主にMS-DOSWindowsなどで使用できる形式のフォーマットのことです。

https://www.ddc.co.jp/words/archives/20050810210448.html

dos2unix [options] [-c *convmode*] [-o *file* ...] [-n *infile outfile* ...]
  • -b または --keep-bom: BOM(Byte Order Mark)を保持します。
  • -c または --convmode [mode]: ファイル変換モードを設定します。modeには以下のいずれかを指定できます。
    - ascii: デフォルトモード。**CRLF を LF に変換します。(windows上から輸入されたファイルを変換します。)**
    - 7bit: 7ビットASCII変換を実行します。
    - iso: ISO変換を実行します。
    - mac: CR を LF に変換します。(主にMAC OSで作成されたファイルをlinux上のコードに変換します。)
    
  • -f または --force: 対話的な確認なしにファイルを強制的に変換します。
  • -h または --help: ヘルプメッセージを表示します。
  • -k または --keepdate: 変換後もファイルのタイムスタンプを保持します。
  • -l または --newline: 各ファイルに新しい行を追加します。
  • -n または --oldfile newfile: 新しいファイルに変換結果を書き込みます。
  • -o または --oldfile: 既存のファイルを変換します(デフォルト動作)。
  • q または --quiet: 静かに実行します(警告メッセージを表示しません)。
  • -r または --remove-bom: BOM(Byte Order Mark)を削除します。
  • -V または --version: バージョン情報を表示します.

dos2unixは、dos形式のプレーンテキストファイルをunix形式に変換します。 主にwindowsから輸入してきたファイルをlinux上でも適切に動作するように変換するために使われます。

dos2unixで変換した後のバージョンには、バイトオーダーマーク(BOM)を追加/削除し、代替コードページを処理する追加のオプションがあります。

dos2unixを使用せずに、sedを使用した代替方法もあります。

sed -i -e 's/\r//g' file

  • filename.txtを変換し、同じファイルに保存します。
dos2unix filename.txt
  • input.txtを変換し、output.txtに出力を送信します:
dos2unix -n input.txt output.txt
  • 確認せずに強制的に変換
dos2unix -f filename.txt
  • ASCII変換モードでinput.txtを変換します:
dos2unix -c ascii -n input.txt output.txt
  • ISO変換モードでinput.txtを変換しoutput.txtに出力
dos2unix -c iso -n input.txt output.txt
  • 警告を出させずに実行
dos2unix -q filename.txt

https://ss64.com/bash/dos2unix.html