aboutsummaryrefslogblamecommitdiffstats
path: root/process_hsbc_transactions.sh
blob: 63cecb4196337be054c8b440c684308716a65f32 (plain) (tree)
1
2
3
4
5
6
7
8
9
10



                           
                   

                            


                              
 

                                                       
                                                   
                                                                                        

  
                                                                                                          
                               
 
                                 
                      
                          

                                                   
 
                                      
                                                                 
 
                                        
                                                                       

                                   
                                       

                                       
                
#!/bin/bash

tf="TransactionHistory.csv"

# Automatic cleanup
trap 'rm -f "$tmpfile"' EXIT
tmpfile=$(mktemp) || exit 1

trap 'rm -f "$ledgertmp"' EXIT
ledgertmp=$(mktemp) || exit

# Check for presence of transaction file
if [[ -a ~/Downloads/$tf ]]; then tpath=~/Downloads/$tf
elif [[ -a "$(pwd)/$tf" ]]; then tpath="$(pwd)/$tf"
else "Cannot find $tf. Expecting it either in ~/Downloads or in current folder."; exit 1
fi

# remove the BOM (https://stackoverflow.com/questions/45240387/how-can-i-remove-the-bom-from-a-utf-8-file)
sed -i $'1s/^\uFEFF//' "$tpath"

# read the file and process lines
while read -r line; do
    line=${line//"-"/"£"}
    echo -e "$line\n$(cat "$tmpfile")" > "$tmpfile"
done < "$tpath"

# how to append to a text file in bash
echo -e "Date,Description,Amount\n$(cat "$tmpfile")" > "$tmpfile"

# use ledger to convert to ledger format
ledger convert --input-date-format "%d/%m/%Y" "$tmpfile" > "$ledgertmp"

# Remove the erroneous Equity lines
sed -i '/Equity:Unknown/d' "$ledgertmp"

# dump to sdout for further redirection
cat "$ledgertmp"