このページの本文へ

前へ 1 2 次へ

Apple Geeks 第33回

知る人ぞ知るテキスト形式変換コマンド「textutil」の謎を解く

2011年03月31日 12時00分更新

文● 海上忍

  • この記事をはてなブックマークに追加
  • 本文印刷

文書ファイルをプレーンテキストに変換する

 文書ファイルフォーマットの変換には、「-convert」オプションに続けて変換後のフォーマット(表1)を指定する。引数には変換前のファイルのみ指定すればよく、変換後のファイル名を省略した場合は、自動的に「オリジナルファイル名+変換後の拡張子」と命名される。変換後のファイル名を指定する場合は、「-output」オプションを使用する。


$ textutil -convert txt "お知らせ.docx"


$ textutil -convert txt "お知らせ.docx" -output notice.txt

 変換前のフォーマットは自動判別されるが、プレーンテキストを指定した場合、シフトJIS以外のエンコーディング形式は受け付けられない。なお、変換後のフォーマットにプレーンテキストを指定すると、初期値の文字エンコード形式として「UTF-8」が適用される。

表1:「textutil」コマンドで変換可能な文書フォーマット
対応形式 説明
txt プレーンテキスト
html HTML/XHTML
rtf リッチテキスト
rtfd 添付書類付きリッチテキスト
doc Word文書(Word 97-2004)
docx Word文書(OOXML/Word 2007以降)
wordml WordprocessingML(XML)
odt OpenDocument(ODT、OpenOffice.orgなど)
webarchive Webアーカイブ(Safariの保存形式)

入出力の文字エンコーディング形式を指定する(プレーンテキスト)

 textutilコマンドは、入力するプレーンテキストファイルの文字エンコーディング形式をシフトJISとして処理する。そのままでは、JIS(ISO-2022-JP)や日本語EUCのファイルは正しく認識されないため、「-inputencoding」オプションに続けてIANA名またはNSStringEncodingクラスで使う名称(例:EUC-JP/JIS/SJIS/UTF-8)を指定する。


$ textutil -inputencoding EUC-JP -info eucjp.txt

 変換後の文字エンコーディング形式を指定する場合は、「-encoding」オプションに続けてIANA名を指定する。前述した「-inputencoding」オプションを利用すると、シフトJISやUTF-8以外のエンコーディング形式も自在に変換できるが、以下に示すとおりコマンドラインは冗長なものとなる。


$ textutil -inputencoding UTF-8 -convert txt utf8unix.txt -encoding SJIS -output sjis.txt

HTMLファイルをまとめてWord文書化する

 textutilコマンドでは、入力にワイルドカードを使用できる。以下に示すコマンド実行例では、カレントディレクトリ上にあるHTMLファイルすべて(*.html)を連結し、OOXML形式のWord文書「ASCIIJP.docx」として書き出している。


$ textutil *.html -cat docx -output ASCIIJP.docx


■関連サイト

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中