Apps

Mac OSでコマンドラインからファイルのエンコーディングを確認する方法

Mac OSでコマンドラインからファイルのエンコーディングを確認する方法

macOSのターミナル

「file」コマンドを使用すると、Mac OS (および Linux) のコマンドラインからファイルのエンコードと文字セットを判別できます。このコマンドは、ファイルの種類に関する一般情報と特定の情報を取得するのに役立ちます。

これはおそらく多くのユーザーにとって関係のあるヒントではないかもしれませんが、何かの目的で特定の文字セットで作業する必要がある場合、または入力された項目のファイルの種類、エンコード、または文字セットが何であるかをコマンド ライン経由で知る必要がある場合は、これが役立ちます。

file コマンドは、Mac OS および Mac oS X だけでなく、Linux やその他多くの Unix バリエーションでも機能するため、このトリックはスクリプトやその他の同様の目的にも役立ちます。

Mac OSのコマンドラインでファイルのエンコーディングと文字セットを確認する

基本的な構文は次のとおりです。

file -I (input file)

(念のため言っておきますが、これはフラグの「i」が大文字の -I であり、小文字の L ではありません)

適切なファイル名を入力してリターンキーを押すと、UTF-8、us-ascii、バイナリ、8 ビットなどの文字セットが表示されます。

たとえば、「text.txt」という名前のファイルの文字セットとファイルエンコーディングをチェックする場合、構文は次のようになります。

$ file -I text.txt
text.txt: text/plain; charset=unknown-8bit

ファイルの種類は「text/plain」、文字セットのファイル エンコーディングは「unknown-8bit」です。

file コマンドは、画像、アーカイブ、実行ファイルなど、コマンドの対象とするあらゆるファイルに実行できます。これは、ファイルの種類を検出して適切なコマンドを実行するような自動化を行う場合に便利です。例えば、curl でファイルをダウンロードした後、適切なコマンドを実行する前にアーカイブの種類を判別する必要がある場合などです。

$ file -I DownloadedFile.zip
DownloadedFile.zip: application/zip; charset=binary

コマンドラインから「file」コマンドを使って文字セット、ファイルエンコーディング、ファイルタイプを確認する方法は他にもたくさんあります。-Iフラグは、利用可能な多様なオプションの一つに過ぎません。詳しくは、fileのマニュアルページをご覧ください。また、他にも多くのコマンドラインのヒントがありますので、ぜひご覧ください(Macで利用可能なすべてのターミナルコマンドを一覧にして、少し楽しんでみてください)。

Mac OSのコマンドラインからファイルのエンコーディングと文字セットを確認する別の方法、あるいはより良い方法をご存知ですか?ぜひコメント欄で教えてください!