Closing out the books in ledger(1)
I put this here mostly because I forget how to do it and have to make multiple starts to get it right.
Note:
I keep my
ledger
files in
git
so I have a fair bit of freedom to experiment.
If I mess things up beyond repair,
I can always
git reset --hard
to revert to the most recent snapshot.
I recommend you make a backup as well.
The first step pulls all transactions ending
(-e
)
before
2022-1-1
into
2021.txt
as an archive.
Next, create a temporary file
containing the
Opening Balances
for the period ending
(-e
)
before
2022-1-1
using the
equity
command.
Then
echo
adds a blank line before transactions start
(note the
>>
to
append
to this file rather than overwrite it).
Finally,
print
all the transactions beginning
(-b
)
on
2022-1-1
into our temporary file.
At this point,
we can move the
tempfile.txt
back atop the original transaction log.
You may need to do some cleanup of the
Opening Balances
to check for unexpected currency issues
(I run in
--pedantic
mode).