FC2ブログ

本を読む

読書やコンピュータなどに関するメモ

lessで.odtや.docxを表示できるようにする

 TwitterでLibreOffice日本語チームが、ODFを「soffice --cat」でテキスト表示するというワザを紹介していました。

 --convert-toとかは知っていましたが、--catは知りませんでした。

 さっそくlessコマンドに仕込んでみます。

 多くのLinuxディストロではデフォルト設定で、lessにlesspipeを組み合わせるようになっています。たとえばlessに.pdfが与えられたらテキストにしてlessで表示、.zipや.tar.xzが与えられたらファイル一覧をlessで表示、という具合です。

 このlesspipeを個人的に拡張するには、~/.lessfilterというシェルスクリプトのファイルを作り、フィルター処理を書きます。

case `echo "$1" | tr '[:upper:]' '[:lower:]'` in
        *.odt|*.docx|*.doc)
                if [ -x "$(command -v soffice)" ]; then soffice --cat "$1";
                else echo "No LibreOffice or OpenOffice available"; fi ;;
        *)
                exit 1;;
esac

exit 0

 目的のファイル名だったら処理してexit 0することでlesspipe処理を終了、それ以外のファイル名だったらexit 1することで通常のlesspipe処理にフォールバック、という内容です。lesspipeの内容を参考にして(枠組をコピペして)書きました。

 ~/.lessfilterには実行権をつけておきます。

$ chmod +x ~/.lessfilter

 これで、メールで送られてきた.docxファイルも、さっとlessで確認できるようになりました。

$ less foo.docx

 めでたしめでたし。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/1479-641bf203

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly