自由な会計ソフトのGnuCashのファイル形式について、あまり理解できていなかったので簡単に整理しておく。macOS v11.6.2のGnuCashv4.9で確認した。
まず、GnuCashは以下の4のファイル形式を選択できる。
- XML (.gnucash、gzip圧縮)
- SQLite (.gnucash)
- MySQL
- PostgreSQL
デフォルトはgzip圧縮されたXML形式となっている。現在のファイル形式はfile
コマンドの実行結果で判断できる。GnuCash上からは判断できないようだ。
file account.gnucash
account.gnucash: GnuCash file
account.gnucash: gzip compressed data, from Unix,
デフォルトのgzip圧縮XML形式が一番使われていると思われるので、これについて掘り下げる。
GnuCashで細かいことを行う場合、直接XMLを編集したり確認したい場面に遭遇する。そういうときのために、まずはgzip形式の解凍・圧縮コマンドを記す。
gzip -cd account.gnucash >account.xml
gzip -c account.xml >account.gnucash
gzipコマンドで解凍・圧縮すればXMLとgzip圧縮XML形式に相互変換できる。gzipコマンドは-c
オプションをつけないと元ファイルを破壊的に解凍・圧縮するため、-c
で別ファイルにリダイレクトで出力している。
また、gzip圧縮の有無はGUIからも変更できる。
[Edit]-[Preferences]-[General]-[Files]-[☑Compress files] がgzip圧縮のオプションとなる。
☑の有無を変更した後に保存するとgzip圧縮の有無が反映される。そのため、[File]-[Save As…] から別名で保存しておくとよいだろう。
簡単だが、GnuCashのファイル形式とよく使うXML形式の圧縮有無の切替・変換方法を記した。
基本はデフォルトのファイルサイズの小さいgzip圧縮XML形式で、XMLを編集したい場合だけ変換すればよいと思う。今後GnuCashのXMLを直接編集したい場合、この方法で切り替えて行いたい。