#!/usr/bin/env bash # hledgerj1 FILE.j1 HLEDGERARGS.. # Convert a one-line journal file (where forward slash is equivalent to newline) # to a standard journal before running hledger on it. # (Does not convert included files, does not work if your journal already contains forward slashes.) F=$1; shift sed -E -e 's/\//\n /g' <"$F" \ | hledger -f- "$@" # Eg: # # ; sample2.j1 # 2025-01-01 starting balances / assets:cash 100 USD = 100 USD / assets:bank:checking 1000 USD = 1000 USD / assets:broker:usd 1000 USD = 1000 USD / assets:broker:aaa 1 AAA @ 1.20 USD = 1 AAA @ 1.20 USD / liabilities:credit card -400 USD = -400 USD / equity:start # 2025-01-01 pay rent / assets:bank:checking / expenses:rent 800 USD # 2025-01-02 salary / revenues:salary / assets:bank:checking 1000 USD # 2025-01-03 pay half of credit card balance / assets:bank:checking / liabilities:credit card 200 USD = -200 USD # 2025-01-04 shopping / assets:bank:checking / expenses:food 200 USD / expenses:supplies 50 USD # # $ hledgerj1 examples/sample2.j1 print # 2025-01-01 starting balances # assets:cash 100 USD = 100 USD # assets:bank:checking 1000 USD = 1000 USD # assets:broker:usd 1000 USD = 1000 USD # assets:broker:aaa 1 AAA @ 1.20 USD = 1 AAA @ 1.20 USD # liabilities:credit card -400 USD = -400 USD # equity:start # # 2025-01-01 pay rent # assets:bank:checking # expenses:rent 800 USD # # 2025-01-02 salary # revenues:salary # assets:bank:checking 1000 USD # # 2025-01-03 pay half of credit card balance # assets:bank:checking # liabilities:credit card 200 USD = -200 USD # # 2025-01-04 shopping # assets:bank:checking # expenses:food 200 USD # expenses:supplies 50 USD