はじめに
- テキストファイルの文字コードを確認するコマンドとか
- 改行コードの変換するコマンドとか
文字コードは何ですか?
いくつか方法があると思うが 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 に変換されている。
最後に
他にもやり方が有りそうなので教えて下さい。