はじめに
- テキストファイルの文字コードを確認するコマンドとか
- 改行コードの変換するコマンドとか
文字コードは何ですか?
いくつか方法があると思うが nkf
を使う。${textfile}
の文字コードを確認する。
nkf --guess ${textfile}
出力結果は下記のようになる。
user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt Shift_JIS (LF) user@tpX1-Carbon:~/tmp$ nkf --guess euc_jp.txt EUC-JP (LF) user@tpX1-Carbon:~/tmp$ nkf --guess utf_8.txt UTF-8 (LF) user@tpX1-Carbon:~/tmp$
合わせて改行コード(LF
)も表示されているので嬉しい。
改行コードを変えましょう
上記の例では Ubuntu
上の gedit
で作成したファイルをそれぞれの文字コードで保存したファイルを確認したが、改行コードは特に弄ることなくタイプは LF
で保存した。
業務でよくあるのが Windows
環境で作成した Excel
ファイルを csv
形式で渡されたて改行コードが CRLF
になってしまっている状況。そんな時には dos2unix
を使って CRLF
を LF
に変換してしおう。
変換前
以下のように CRLF
の状態のテキストファイル。
user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt Shift_JIS (CRLF)
変換後
以下のように dos2unix
で CRLF
から LF
に変換する。
user@tpX1-Carbon:~/tmp$ dos2unix shift_jis.txt dos2unix: converting file shift_jis.txt to Unix format ...
変換後、確認する。
user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt Shift_JIS (LF)
LF
に変換されている。
最後に
他にもやり方が有りそうなので教えて下さい。