summaryrefslogblamecommitdiffstats
path: root/content/blog/2015-02-27-a-quick-script-to-import-data-from-my-bank-to-gnucash/index.en.md
blob: 92637285fa5dda3db9952287bd914b38afc99572 (plain) (tree)
1
2
3
4
5
6
7
8
9




                                                               
                    


                                             
 































                                                                                                                                                                                                                                                                                                       
+++
title = "A quick script to import data from my bank to GnuCash"
lang = "en"

[taxonomies]
authors = ["harald"]
tags = ["software", "programming", "scripts"]

[extra]

+++

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/