+++ title = "A quick script to import data from my bank to GnuCash" lang = "en" [taxonomies] tags = ["software", "programming", "scripts"] [extra] author = "harald" +++ Here's a quick awk script I did to convert the bank statements from my bank to a format recognizable by [GnuCash]: ```awk # A simple filter to mould the csv from nordea into # something that can be swallowed by gnucash. BEGIN { FS = ";"; RS = "\n"; OFS = ";"; ORS = "\n"; # Regex for matching a date DATE = /^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$/; } # Only lines starting with a date should be printed $2 ~ DATE { # Strip negative sign from withdraw column withdraw = gensub(/\-/, "", "g", $8); print $2,$4,$6,withdraw,$10; } ``` It could probably be shorter. I could drop setting the RS/ORS, but I like to be explicit. In addition to fixing the polarity of the withdrawals column it strips away all the lines that don't contain any transactions. I don't need them, and this saves me from having to do it manually in GnuCash. Not anything revolutionary, but thought I'd share it anyways. [GnuCash]: http://www.gnucash.org/