;doc: use ``cli not ``shell for command-line examples
This commit is contained in:
parent
a1988546f1
commit
0c85b48d2c
@ -66,7 +66,7 @@ $ fin # list the scripts available
|
||||
is a way to organise your finance-related reports and scripts using standard bash.
|
||||
(See also [justfile](#justfile) below.)
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ alias f=~/src/hledger/bin/ft
|
||||
$ f
|
||||
--------------------------------------------------------------------------------"; }
|
||||
@ -103,7 +103,7 @@ Add hledger options to customise reports.
|
||||
[`tt`](https://github.com/simonmichael/hledger/blob/master/bin/tt)
|
||||
is a similar bash multi-script for time reports.
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ alias t=~/src/hledger/bin/tt
|
||||
$ t
|
||||
--------------------------------------------------------------------------------
|
||||
@ -141,7 +141,7 @@ More on [hledger and just](just.md).
|
||||
Here is a [justfile](https://github.com/simonmichael/hledger/blob/master/bin/justfile)
|
||||
reimplementing the `ft` and `tt` scripts more simply:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ brew install just # eg
|
||||
$ alias j=just
|
||||
$ cd ~/finance
|
||||
@ -268,7 +268,7 @@ The [hledger-utils python package](https://pypi.org/project/hledger-utils/) prov
|
||||
a `hledger-edit` command to edit the queried transactions in your `$EDITOR` no matter what file they reside in.
|
||||
|
||||
Install or upgrade:
|
||||
```shell
|
||||
```cli
|
||||
$ pip install -U hledger-utils # might be slightly different on your system
|
||||
```
|
||||
|
||||
@ -292,7 +292,7 @@ The [hledger-utils python package](https://pypi.org/project/hledger-utils/) prov
|
||||
a `hledger-plot` command for generating charts with matplotlib.
|
||||
|
||||
Install or upgrade:
|
||||
```shell
|
||||
```cli
|
||||
$ pip install -U hledger-utils # might be slightly different on your system
|
||||
```
|
||||
Examples:
|
||||
|
||||
@ -15,7 +15,7 @@ This installs haskell dependencies (but not system dependencies) and rebuilds as
|
||||
then runs [hledger/bench/bench.hs](https://github.com/simonmichael/hledger/blob/master/hledger/bench/bench.hs),
|
||||
which by default shows quick elapsed-time measurements for several operations on a standard data file:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ stack bench hledger
|
||||
NOTE: the bench command is functionally equivalent to 'build --bench'
|
||||
...
|
||||
@ -35,7 +35,7 @@ Benchmark bench: FINISH
|
||||
bench.hs has some other modes, which you can use by compiling and running it directly.
|
||||
`--criterion` reports more detailed and dependable measurements, but takes longer:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ cd hledger; stack exec -- ghc -ibench bench/bench && bench/bench --criterion
|
||||
...
|
||||
Linking bench/bench ...
|
||||
@ -80,7 +80,7 @@ variance introduced by outliers: 16% (moderately inflated)
|
||||
It can also show the results for multiple h/ledger executables side by side, if you tweak the bench.hs code.
|
||||
Unlike the other modes, it does not link with the hledger code directly, but runs the "hledger" executable found in $PATH (so ensure that's the one you intend to test).
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ cd hledger; stack exec -- ghc -ibench bench/bench && bench/bench --simplebench
|
||||
Benchmarking /Users/simon/.local/bin/hledger in /Users/simon/src/hledger/hledger with simplebench and shell
|
||||
Using bench/default.bench
|
||||
@ -107,12 +107,12 @@ simplebench.hs is a generic benchmarker of one or more executables (specified on
|
||||
It has a better command-line interface than bench.hs, so you may find it more convenient
|
||||
for comparing multiple hledger versions, or hledger and ledger. Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ stack exec -- ghc tools/simplebench
|
||||
[1 of 1] Compiling Main ( tools/simplebench.hs, tools/simplebench.o )
|
||||
Linking tools/simplebench ...
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ tools/simplebench -h
|
||||
tools/simplebench -h
|
||||
simplebench: at least one executable needed
|
||||
@ -133,7 +133,7 @@ Tips:
|
||||
- tests can be commented out with #
|
||||
- results are saved in benchresults.{html,txt}
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
cd hledger; $ ../tools/simplebench -f bench/default.bench hledger ledger
|
||||
Using bench/default.bench
|
||||
Running 4 tests 2 times with 2 executables at 2015-08-24 04:24:37.257068 UTC:
|
||||
|
||||
@ -166,7 +166,7 @@ Here are some ways to run it during development:
|
||||
|
||||
- `yesod devel`: runs in developer mode, rebuilds automatically when config, template, static or haskell files change
|
||||
(but only files in the hledger-web package):
|
||||
```shell
|
||||
```cli
|
||||
$ (cd hledger-web; yesod devel)
|
||||
```
|
||||
|
||||
@ -176,7 +176,7 @@ $ (cd hledger-web; yesod devel)
|
||||
- `stack ghci`: runs the server in developer mode from GHCI.
|
||||
Changes to static files like hledger.js will be visible on page reload;
|
||||
to see other changes, restart it as shown.
|
||||
```shell
|
||||
```cli
|
||||
$ (cd hledger-web; stack ghci hledger-web)
|
||||
hledger-web> :main --serve # restart: ctrl-c, :r, enter, ctrl-p, ctrl-p, enter
|
||||
```
|
||||
@ -184,7 +184,7 @@ hledger-web> :main --serve # restart: ctrl-c, :r, enter, ctrl-p, ctrl-p, enter
|
||||
- `make ghci-web`: runs the server in developer mode from GHCI, also
|
||||
interprets the hledger-lib and hledger packages so that :reload picks
|
||||
up changes in those packages too:
|
||||
```shell
|
||||
```cli
|
||||
$ make ghci-web
|
||||
ghci> :main --serve
|
||||
```
|
||||
|
||||
@ -12,7 +12,7 @@ The numbers describe the number of transactions, number of accounts, and maximum
|
||||
They are generated by [`tools/generatejournal.hs`](https://github.com/simonmichael/hledger/blob/master/tools/generatejournal.hs).
|
||||
They should get built automatically as needed, if not you can use `make samplejournals`:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ make samplejournals
|
||||
ghc tools/generatejournal.hs
|
||||
[1 of 1] Compiling Main ( tools/generatejournal.hs, tools/generatejournal.o )
|
||||
|
||||
@ -9,7 +9,7 @@ The Makefile contains a fair amount of obsolete cruft and needs cleanup. Some ta
|
||||
|
||||
The Makefile is self-documenting. Run `make` to see a list of the main make rules:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ make
|
||||
Makefile:37: -------------------- hledger make rules --------------------
|
||||
Makefile:39: make [help] -- list documented rules in this makefile. make -n RULE shows more detail.
|
||||
@ -23,11 +23,11 @@ Makefile:304: make hledgerdev -- quickly build the hledger executable (with ghc
|
||||
|
||||
To see what a make rule will do without actually doing it, use the `-n` flag:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ make build -n
|
||||
stack build
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ make test -n
|
||||
(stack test \
|
||||
&& echo pkgtest PASSED) || echo pkgtest FAILED
|
||||
|
||||
@ -341,7 +341,7 @@ This is very useful when reconciling. A good workflow is to have
|
||||
your bank's online register open in a browser window, for reference;
|
||||
the journal file open in an editor window;
|
||||
and hledger-ui in watch mode in a terminal window, eg:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger-ui --watch --register checking -C
|
||||
```
|
||||
As you mark things cleared in the editor,
|
||||
|
||||
@ -207,7 +207,7 @@ In addition to the web UI, hledger-web also serves a JSON API that can be
|
||||
used to get data or add new transactions.
|
||||
If you want the JSON API only, you can use the `--serve-api` flag. Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger-web -f examples/sample.journal --serve-api
|
||||
...
|
||||
```
|
||||
@ -227,7 +227,7 @@ You can get JSON data from these routes:
|
||||
Eg, all account names in the journal (similar to the [accounts](hledger.html#accounts) command).
|
||||
(hledger-web's JSON does not include newlines, here we use python to prettify it):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
|
||||
[
|
||||
"assets",
|
||||
@ -248,7 +248,7 @@ $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
|
||||
|
||||
Or all transactions:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ curl -s http://127.0.0.1:5000/transactions | python -m json.tool
|
||||
[
|
||||
{
|
||||
@ -294,7 +294,7 @@ The payload must be the full, exact JSON representation of a hledger transaction
|
||||
You can get sample JSON from hledger-web's `/transactions` or `/accounttransactions`,
|
||||
or you can export it with hledger-lib, eg like so:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
.../hledger$ stack ghci hledger-lib
|
||||
>>> writeJsonFile "txn.json" (head $ jtxns samplejournal)
|
||||
>>> :q
|
||||
@ -395,7 +395,7 @@ and related data types):
|
||||
|
||||
And here's how to test adding it with curl. This should add a new entry to your journal:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json
|
||||
```
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ account name, or if none can be found, it fails with a non-zero exit code.
|
||||
|
||||
Examples:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger accounts
|
||||
assets:bank:checking
|
||||
assets:bank:saving
|
||||
@ -50,7 +50,7 @@ income:gifts
|
||||
income:salary
|
||||
liabilities:debts
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger accounts --undeclared --directives >> $LEDGER_FILE
|
||||
$ hledger check accounts
|
||||
```
|
||||
|
||||
@ -9,7 +9,7 @@ counts by day, week, month or other reporting interval (by day is the
|
||||
default). With query arguments, it counts only matched transactions.
|
||||
|
||||
Examples:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger activity --quarterly
|
||||
2008-01-01 **
|
||||
2008-04-01 *******
|
||||
|
||||
@ -40,7 +40,7 @@ causing it to be different from the account's real-world running balance.
|
||||
An example: this shows the transactions and historical running balance
|
||||
during july, in the first account whose name contains "checking":
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger areg checking date:jul
|
||||
```
|
||||
|
||||
|
||||
@ -96,7 +96,7 @@ if any, and then alphabetically by account name.
|
||||
For instance
|
||||
(using [examples/sample.journal](https://github.com/simonmichael/hledger/blob/master/examples/sample.journal)):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal bal
|
||||
$1 assets:bank:saving
|
||||
$-2 assets:cash
|
||||
@ -113,7 +113,7 @@ Accounts with a zero balance (and no non-zero subaccounts, in tree
|
||||
mode - see below) are hidden by default. Use `-E/--empty` to show them
|
||||
(revealing `assets:bank:checking` here):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal bal -E
|
||||
0 assets:bank:checking
|
||||
$1 assets:bank:saving
|
||||
@ -135,7 +135,7 @@ For single-period balance reports displayed in the terminal (only),
|
||||
you can use `--format FMT` to customise the format and content of each
|
||||
line. Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal balance --format "%20(account) %12(total)"
|
||||
assets $-1
|
||||
bank:saving $1
|
||||
@ -196,7 +196,7 @@ cleared transactions only, etc. by using [query](#queries)
|
||||
arguments or [options](#report-start--end-date) to limit
|
||||
the postings being matched. Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal bal --cleared assets date:200806
|
||||
$-2 assets:cash
|
||||
--------------------
|
||||
@ -211,7 +211,7 @@ with their full names visible, as in the examples above.
|
||||
With `-t/--tree`, the account hierarchy is shown, with subaccounts'
|
||||
"leaf" names indented below their parent:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal balance
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
@ -253,7 +253,7 @@ Account balances at the depth limit always include the balances from
|
||||
any deeper subaccounts (even in list mode).
|
||||
Eg, limiting to depth 1:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal balance -1
|
||||
$-1 assets
|
||||
$2 expenses
|
||||
@ -268,7 +268,7 @@ $ hledger -f examples/sample.journal balance -1
|
||||
You can also hide one or more top-level account name parts, using `--drop NUM`.
|
||||
This can be useful for hiding repetitive top-level account names:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal bal expenses --drop 1
|
||||
$1 food
|
||||
$1 supplies
|
||||
@ -314,7 +314,7 @@ Note it is not useful to calculate percentages if the amounts in a
|
||||
column have mixed signs. In this case, make a separate report for each
|
||||
sign, eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal -% amt:`>0`
|
||||
$ hledger bal -% amt:`<0`
|
||||
```
|
||||
@ -323,7 +323,7 @@ Similarly, if the amounts in a column have mixed commodities, convert
|
||||
them to one commodity with `-B`, `-V`, `-X` or `--value`, or make a
|
||||
separate report for each commodity:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal -% cur:\\$
|
||||
$ hledger bal -% cur:€
|
||||
```
|
||||
@ -335,7 +335,7 @@ With a [report interval](#report-intervals) (set by the `-D/--daily`,
|
||||
`-p/--period` flag), `balance` shows a tabular report, with columns
|
||||
representing successive time periods (and a title):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/sample.journal bal --quarterly income expenses -E
|
||||
Balance changes in 2008:
|
||||
|
||||
@ -530,7 +530,7 @@ For example, you can take average monthly expenses in the common expense categor
|
||||
```
|
||||
|
||||
You can now see a monthly budget report:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance -M --budget
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
@ -565,7 +565,7 @@ shown, as they have no budget amounts declared.
|
||||
This can be confusing. When you need to make things clearer, use the `-E/--empty` flag,
|
||||
which will reveal all accounts including unbudgeted ones, giving the full picture. Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance -M --budget --empty
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
@ -587,7 +587,7 @@ Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
|
||||
You can roll over unspent budgets to next period with `--cumulative`:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance -M --budget --cumulative
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
@ -639,7 +639,7 @@ day of 2020-01-15:
|
||||
expenses:food $400
|
||||
assets:checking
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal expenses --budget
|
||||
Budget performance in 2020-01-15:
|
||||
|
||||
@ -654,7 +654,7 @@ To avoid this, specify the budget report's period, or at least the start date,
|
||||
with `-b`/`-e`/`-p`/`date:`, to ensure it includes the budget goal transactions
|
||||
(periodic transactions) that you want. Eg, adding `-b 2020/1/1` to the above:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal expenses --budget -b 2020/1/1
|
||||
Budget performance in 2020-01-01..2020-01-15:
|
||||
|
||||
@ -713,7 +713,7 @@ For example, let's consider these transactions:
|
||||
As you can see, we have transactions in `expenses:personal:electronics:upgrades` and `expenses:personal:train tickets`, and since both of these accounts are without explicitly defined budget,
|
||||
these transactions would be counted towards budgets of `expenses:personal:electronics` and `expenses:personal` accordingly:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance --budget -M
|
||||
Budget performance in 2019/01:
|
||||
|
||||
@ -728,7 +728,7 @@ Budget performance in 2019/01:
|
||||
```
|
||||
|
||||
And with `--empty`, we can get a better picture of budget allocation and consumption:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance --budget -M --empty
|
||||
Budget performance in 2019/01:
|
||||
|
||||
@ -749,7 +749,7 @@ Budget performance in 2019/01:
|
||||
The budget report evaluates periodic transaction rules to generate special "goal transactions",
|
||||
which generate the goal amounts for each account in each report subperiod.
|
||||
When troubleshooting, you can use `print --forecast` to show these as forecasted transactions:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --forecast=BUDGETREPORTPERIOD tag:generated
|
||||
```
|
||||
|
||||
@ -826,7 +826,7 @@ note only CSV output supports all of them:
|
||||
Examples:
|
||||
|
||||
- Wide layout. With many commodities, reports can be very wide:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -T -Y --layout=wide
|
||||
Balance changes in 2012-01-01..2014-12-31:
|
||||
|
||||
@ -838,7 +838,7 @@ Examples:
|
||||
```
|
||||
|
||||
- Limited wide layout. A width limit reduces the width, but some commodities will be hidden:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -T -Y --layout=wide,32
|
||||
Balance changes in 2012-01-01..2014-12-31:
|
||||
|
||||
@ -850,7 +850,7 @@ Examples:
|
||||
```
|
||||
|
||||
- Tall layout. Each commodity gets a new line (may be different in each column), and account names are repeated:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -T -Y --layout=tall
|
||||
Balance changes in 2012-01-01..2014-12-31:
|
||||
|
||||
@ -870,7 +870,7 @@ Examples:
|
||||
```
|
||||
|
||||
- Bare layout. Commodity symbols are kept in one column, each commodity gets its own report row, account names are repeated:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -T -Y --layout=bare
|
||||
Balance changes in 2012-01-01..2014-12-31:
|
||||
|
||||
@ -891,7 +891,7 @@ Examples:
|
||||
|
||||
- Bare layout also affects [CSV output](#output-format),
|
||||
which is useful for producing data that is easier to consume, eg for making charts:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -O csv --layout=bare
|
||||
"account","commodity","balance"
|
||||
"Assets:US:ETrade","GLD","70.00"
|
||||
@ -917,7 +917,7 @@ Examples:
|
||||
This is the easiest kind of data for other software to consume.
|
||||
Here's how it looks:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f examples/bcexample.hledger bal assets:us:etrade -3 -Y -O csv --layout=tidy
|
||||
"account","period","start_date","end_date","commodity","value"
|
||||
"Assets:US:ETrade","2012","2012-01-01","2012-12-31","GLD","0"
|
||||
|
||||
@ -17,7 +17,7 @@ Or if no such accounts are declared, it shows top-level accounts named
|
||||
|
||||
Example:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balancesheet
|
||||
Balance Sheet
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Or if no such accounts are declared, it shows top-level accounts named
|
||||
`asset`, `liability` or `equity` (case insensitive, plurals allowed) and their subaccounts.
|
||||
|
||||
Example:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balancesheetequity
|
||||
Balance Sheet With Equity
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ More precisely: all accounts matching this case insensitive regular expression:
|
||||
and their subaccounts.
|
||||
|
||||
An example cashflow report:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger cashflow
|
||||
Cashflow Statement
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ Specify their names (or a prefix) as argument(s).
|
||||
|
||||
Some examples:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
hledger check # basic checks
|
||||
hledger check -s # basic + strict checks
|
||||
hledger check ordereddates payees # basic + two other checks
|
||||
|
||||
@ -106,14 +106,14 @@ in effect splitting the multi-day transaction into two single-day transactions:
|
||||
Record 2022's revenues/expenses as retained earnings on 2022-12-31,
|
||||
appending the generated transaction to the journal:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger close --retain -f 2022.journal -p 2022 >> 2022.journal
|
||||
```
|
||||
|
||||
Note 2022's income statement will now show only zeroes,
|
||||
because revenues and expenses have been moved entirely to equity.
|
||||
To see them again, you could exclude the retain transaction:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f 2022.journal is not:desc:'retain earnings'
|
||||
```
|
||||
|
||||
@ -121,7 +121,7 @@ $ hledger -f 2022.journal is not:desc:'retain earnings'
|
||||
|
||||
Close assets/liabilities/equity on 2022-12-31 and re-open them on 2023-01-01:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger close --migrate -f 2022.journal -p 2022
|
||||
# copy/paste the closing transaction to the end of 2022.journal
|
||||
# copy/paste the opening transaction to the start of 2023.journal
|
||||
@ -130,7 +130,7 @@ $ hledger close --migrate -f 2022.journal -p 2022
|
||||
<!--
|
||||
Or, you can automate more by generating one transaction at a time:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger close --close -f 2022.journal -p 2022 >> 2023.journal # do this one first
|
||||
$ hledger close --open -f 2022.journal -p 2022 >> 2022.journal
|
||||
```
|
||||
@ -139,7 +139,7 @@ $ hledger close --open -f 2022.journal -p 2022 >> 2022.journal
|
||||
Now 2022's balance sheet will show only zeroes, indicating a balanced accounting equation.
|
||||
([Unless](/investments.html#a-more-correct-entry) you are using @/@@ notation - in that case, try adding --infer-equity.)
|
||||
To see the end-of-year balances again, you could exclude the closing transaction:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f 2022.journal bs not:desc:'closing balances'
|
||||
```
|
||||
|
||||
@ -187,12 +187,12 @@ include 2023.journal
|
||||
|
||||
The `clopen:` tag can exclude all but the first opening transaction.
|
||||
To show a clean multi-year checking register:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f all.journal areg checking not:tag:clopen
|
||||
```
|
||||
|
||||
And the year values allow more precision.
|
||||
To show 2022's year-end balance sheet:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f all.journal bs -e2023 not:tag:clopen=2023
|
||||
```
|
||||
|
||||
@ -35,14 +35,14 @@ Examples:
|
||||
Checking
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger codes
|
||||
123
|
||||
124
|
||||
126
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger codes -E
|
||||
123
|
||||
124
|
||||
|
||||
@ -22,7 +22,7 @@ SPACE to pause/unpause, . to step forward (while paused),
|
||||
CTRL-c quit.
|
||||
|
||||
Examples:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger demo # list available demos
|
||||
$ hledger demo 1 # play the first demo at default speed (2x)
|
||||
$ hledger demo install -s4 # play the "install" demo at 4x speed
|
||||
|
||||
@ -9,7 +9,7 @@ in alphabetic order.
|
||||
You can add a query to select a subset of transactions.
|
||||
|
||||
Example:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger descriptions
|
||||
Store Name
|
||||
Gas Station | Petrol
|
||||
|
||||
@ -20,7 +20,7 @@ _FLAGS
|
||||
|
||||
Examples:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger diff -f $LEDGER_FILE -f bank.csv assets:bank:giro
|
||||
These transactions are in the first file only:
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ on mac you will likely have info 4.8, and should consider installing a newer ver
|
||||
eg with `brew install texinfo` (#1770).
|
||||
|
||||
Examples
|
||||
```shell
|
||||
```cli
|
||||
$ hledger help --help # show how the help command works
|
||||
$ hledger help # show the hledger manual with info, man or $PAGER
|
||||
$ hledger help journal # show the journal topic in the hledger manual
|
||||
|
||||
@ -73,13 +73,13 @@ to the terminal, without updating your journal or state files.
|
||||
The output is valid journal format, like the print command, so you can re-parse it.
|
||||
Eg, to see any importable transactions which CSV rules have not categorised:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger import --dry bank.csv | hledger -f- -I print unknown
|
||||
```
|
||||
|
||||
or (live updating):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ ls bank.csv* | entr bash -c 'echo ====; hledger import --dry bank.csv | hledger -f- -I print unknown'
|
||||
```
|
||||
|
||||
@ -99,7 +99,7 @@ As a result, importing entries with balance assignments
|
||||
will probably generate incorrect posting amounts.
|
||||
To avoid this problem, use print instead of import:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print IMPORTFILE [--new] >> $LEDGER_FILE
|
||||
```
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ Or if no such accounts are declared, it shows top-level accounts named
|
||||
`revenue` or `income` or `expense` (case insensitive, plurals allowed) and their subaccounts.
|
||||
|
||||
Example:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger incomestatement
|
||||
Income Statement
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ The note is the part of the transaction description after a | character
|
||||
(or if there is no |, the whole description).
|
||||
|
||||
Example:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger notes
|
||||
Petrol
|
||||
Snacks
|
||||
|
||||
@ -16,7 +16,7 @@ You can add query arguments to select a subset of transactions. This implies --u
|
||||
|
||||
|
||||
Example:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger payees
|
||||
Store Name
|
||||
Gas Station
|
||||
|
||||
@ -15,7 +15,7 @@ the directives and inter-transaction comments.
|
||||
|
||||
Eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -f examples/sample.journal date:200806
|
||||
2008/06/01 gift
|
||||
assets:bank:checking $1
|
||||
@ -80,7 +80,7 @@ and you can process it again with a second hledger command.
|
||||
This can be useful for certain kinds of search
|
||||
(though the same can be achieved with `expr:` queries now):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
# Show running total of food expenses paid from cash.
|
||||
# -f- reads from stdin. -I/--ignore-assertions is sometimes needed.
|
||||
$ hledger print assets:cash | hledger -f- -I reg expenses:food
|
||||
@ -140,7 +140,7 @@ Some limitations:
|
||||
|
||||
Here's an example of print's CSV output:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -Ocsv
|
||||
"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
|
||||
"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
|
||||
|
||||
@ -18,7 +18,7 @@ commodity).
|
||||
It is typically used with a [query](#queries) selecting a
|
||||
particular account, to see that account's activity:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register checking
|
||||
2008/01/01 income assets:bank:checking $1 $1
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
@ -37,7 +37,7 @@ The `--historical`/`-H` flag adds the balance from any undisplayed
|
||||
prior postings to the running total. This is useful when you want to
|
||||
see only recent activity, with a historically accurate running balance:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register checking -b 2008/6 --historical
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
2008/06/02 save assets:bank:checking $-1 $1
|
||||
@ -61,14 +61,14 @@ displayed as negative numbers.
|
||||
It's also useful to show postings on the checking account together with the
|
||||
related account:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register --related --invert assets:checking
|
||||
```
|
||||
|
||||
With a [reporting interval](#reporting-interval), register shows
|
||||
summary postings, one per interval, aggregating the postings to each account:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register --monthly income
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/06 income:gifts $-1 $-2
|
||||
@ -76,7 +76,7 @@ $ hledger register --monthly income
|
||||
Periods with no activity, and summary postings with a zero amount, are
|
||||
not shown by default; use the `--empty`/`-E` flag to see them:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register --monthly income -E
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/02 0 $-1
|
||||
@ -95,7 +95,7 @@ $ hledger register --monthly income -E
|
||||
Often, you'll want to see just one line per interval.
|
||||
The `--depth` option helps with this, causing subaccounts to be aggregated:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register --monthly assets --depth 1h
|
||||
2008/01 assets $1 $1
|
||||
2008/06 assets $-1 0
|
||||
@ -129,7 +129,7 @@ date (10) description (D) account (W-41-D) amount (12) balance (12)
|
||||
DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
|
||||
```
|
||||
and some examples:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger reg # use terminal width (or 80 on windows)
|
||||
$ hledger reg -w 100 # use width 100
|
||||
$ COLUMNS=100 hledger reg # set with one-time environment variable
|
||||
|
||||
@ -11,7 +11,7 @@ but adds one or more specified postings to any transactions matching QUERY.
|
||||
The posting amounts can be fixed, or a multiplier of the existing transaction's first posting amount.
|
||||
|
||||
Examples:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
|
||||
$ hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
|
||||
$ hledger-rewrite.hs -f rewrites.hledger
|
||||
@ -28,7 +28,7 @@ and the two spaces between account and amount.
|
||||
|
||||
More:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
|
||||
$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
|
||||
$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
|
||||
@ -49,7 +49,7 @@ During the run this tool will execute so called
|
||||
found in any journal it process. I.e instead of specifying this operations in
|
||||
command line you can put them in a journal file.
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ rewrite-rules.journal
|
||||
```
|
||||
|
||||
@ -68,13 +68,13 @@ Note that `'='` (equality symbol) that is used instead of date in transactions
|
||||
you usually write. It indicates the query by which you want to match the
|
||||
posting to add new ones.
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal
|
||||
```
|
||||
|
||||
This is something similar to the commands pipeline:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
|
||||
| hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
|
||||
--add-posting 'assets:budget *1' \
|
||||
@ -89,7 +89,7 @@ important. You can re-use result of previously added postings.
|
||||
To use this tool for batch modification of your journal files you may find
|
||||
useful output in form of unified diff.
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax) *.33'
|
||||
```
|
||||
|
||||
|
||||
@ -45,13 +45,13 @@ Note that `--inv` and `--pnl`'s argument is a query, and queries could have seve
|
||||
|
||||
To indicate that all search terms form single command-line argument, you will need to put them in quotes (see [Special characters](https://hledger.org/hledger.html#special-characters)):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger roi --inv 'term1 term2 term3 ...'
|
||||
```
|
||||
|
||||
If any query terms contain spaces themselves, you will need an extra level of nested quoting, eg:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger roi --inv="'Assets:Test 1'" --pnl="'Equity:Unrealized Profit and Loss'"
|
||||
```
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ run time is similar to that of a single-column balance report.
|
||||
|
||||
Example:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger stats -f examples/1000x1000x10.journal
|
||||
Main file : /Users/simon/src/hledger/examples/1000x1000x10.journal
|
||||
Included files :
|
||||
|
||||
@ -16,7 +16,7 @@ as a bug!
|
||||
This command also accepts tasty test runner options, written after a
|
||||
-- (double hyphen). Eg to run only the tests in Hledger.Data.Amount,
|
||||
with ANSI colour codes disabled:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger test -- -pData.Amount --color=never
|
||||
```
|
||||
For help on these, see https://github.com/feuerbach/tasty#options
|
||||
|
||||
@ -98,7 +98,7 @@ in [PART 5: COMMON TASKS](#part-5-common-tasks).
|
||||
|
||||
hledger reads one or more data files, each time you run it.
|
||||
You can specify a file with `-f`, like so
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f FILE print
|
||||
```
|
||||
|
||||
@ -135,7 +135,7 @@ so as to either read successfully or to show relevant error messages.
|
||||
You can also force a specific reader/format by prefixing the file path with the format and a colon.
|
||||
Eg, to read a .dat file as csv format:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f csv:/some/csv-file.dat stats
|
||||
```
|
||||
|
||||
@ -143,13 +143,13 @@ $ hledger -f csv:/some/csv-file.dat stats
|
||||
|
||||
The file name `-` means standard input:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ cat FILE | hledger -f- print
|
||||
```
|
||||
|
||||
If reading non-journal data in this way, you'll need to add a file format prefix, like:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ echo 'i 2009/13/1 08:00:00' | hledger print -f timeclock:-
|
||||
```
|
||||
|
||||
@ -272,13 +272,13 @@ spaces, `<`, `>`, `(`, `)`, `|`, `$` and `\` - should be
|
||||
enclosing them in single or double quotes, or by writing a backslash
|
||||
before them. Eg to match an account name containing a space:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register 'credit card'
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register credit\ card
|
||||
```
|
||||
|
||||
@ -296,13 +296,13 @@ writing backslashes before them, but since backslash is typically also
|
||||
a shell metacharacter, both shell-escaping and regex-escaping will be
|
||||
needed. Eg to match a literal `$` sign while using the bash shell:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance cur:'\$'
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance cur:\\$
|
||||
```
|
||||
|
||||
@ -314,13 +314,13 @@ arguments intended for by the add-on command, so those need an extra
|
||||
level of shell-escaping. Eg to match a literal `$` sign while using
|
||||
the bash shell and running an add-on command (`ui`):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger ui cur:'\\$'
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger ui cur:\\\\$
|
||||
```
|
||||
|
||||
@ -335,7 +335,7 @@ If you wondered why *four* backslashes, perhaps this helps:
|
||||
|
||||
Or, you can avoid the extra escaping by running the add-on executable directly:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger-ui cur:\\$
|
||||
```
|
||||
|
||||
@ -514,14 +514,14 @@ you would at the command prompt.
|
||||
|
||||
hledger commands send their output to the terminal by default.
|
||||
You can of course redirect this, eg into a file, using standard shell syntax:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print > foo.txt
|
||||
```
|
||||
|
||||
Some commands (print, register, stats, the balance commands) also
|
||||
provide the `-o/--output-file` option, which does the same thing
|
||||
without needing the shell. Eg:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -o foo.txt
|
||||
$ hledger print -o - # write to stdout (the default)
|
||||
```
|
||||
@ -573,17 +573,17 @@ Here are those commands and the formats currently supported:
|
||||
-->
|
||||
|
||||
The output format is selected by the `-O/--output-format=FMT` option:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -O csv # print CSV on stdout
|
||||
```
|
||||
|
||||
or by the filename extension of an output file specified with the `-o/--output-file=FILE.FMT` option:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balancesheet -o foo.csv # write CSV to foo.csv
|
||||
```
|
||||
|
||||
The `-O` option can be combined with `-o` to override the file extension, if needed:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balancesheet -o foo.txt -O csv # write CSV to foo.txt
|
||||
```
|
||||
|
||||
@ -658,7 +658,7 @@ by the [`print`](#print) command, which are always displayed with all
|
||||
decimal digits).
|
||||
For example, the following will force dollar amounts to be displayed as shown:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -c '$1.000,0'
|
||||
```
|
||||
|
||||
@ -710,7 +710,7 @@ Typically you would start with 1 and increase until you are seeing enough.
|
||||
Debug output goes to stderr, and is not affected by `-o/--output-file` (unless you redirect stderr to stdout, eg: `2>&1`).
|
||||
It will be interleaved with normal output, which can help reveal when parts of the code are evaluated.
|
||||
To capture debug output in a log file instead, you can usually redirect stderr, eg:
|
||||
```shell
|
||||
```cli
|
||||
hledger bal --debug=3 2>hledger.log
|
||||
```
|
||||
|
||||
@ -982,12 +982,12 @@ be reported on 6/1 for easy bank reconciliation:
|
||||
assets:checking ; bank cleared it on monday, date:6/1
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f t.j register food
|
||||
2015-05-30 expenses:food $10 $10
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f t.j register checking
|
||||
2015-06-01 assets:checking $-10 $-10
|
||||
```
|
||||
@ -1785,7 +1785,7 @@ account expenses
|
||||
```
|
||||
|
||||
those accounts will be displayed in declaration order:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger accounts -1
|
||||
assets
|
||||
liabilities
|
||||
@ -1994,7 +1994,7 @@ In case of trouble, adding `--debug=6` to the command line will show which alias
|
||||
|
||||
As explained at [Directives and multiple files](#directives-and-multiple-files),
|
||||
`alias` directives do not affect parent or sibling files. Eg in this command,
|
||||
```shell
|
||||
```cli
|
||||
hledger -f a.aliases -f b.journal
|
||||
```
|
||||
account aliases defined in a.aliases will not affect b.journal.
|
||||
@ -2040,7 +2040,7 @@ For example, you could erase all account names:
|
||||
a:aa 1
|
||||
b
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --alias '/.*/='
|
||||
2021-01-01
|
||||
1
|
||||
@ -2056,7 +2056,7 @@ that would give a different journal when reparsed:
|
||||
old 1
|
||||
other
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --alias old="new USD" | hledger -f- print
|
||||
2021-01-01
|
||||
new USD 1
|
||||
@ -2087,7 +2087,7 @@ it tries and fails to infer a type for "foo".
|
||||
If you are using account aliases and the [`type:` query](#queries) is not matching accounts as you expect,
|
||||
try troubleshooting with the accounts command, eg something like:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger accounts --alias assets=bassetts type:a
|
||||
```
|
||||
|
||||
@ -2420,7 +2420,7 @@ Some examples:
|
||||
expenses:gifts $20
|
||||
assets:checking
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --auto
|
||||
2017-12-01
|
||||
expenses:food $10
|
||||
@ -2800,7 +2800,7 @@ skip 1
|
||||
fields date, description, , amount
|
||||
date-format %d/%m/%Y
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -f basic.csv
|
||||
2019-11-12 Foo
|
||||
expenses:unknown 10.23
|
||||
@ -2955,7 +2955,7 @@ In either of these cases, hledger will do a time-zone-aware conversion,
|
||||
localising the CSV date-times to your current system time zone.
|
||||
If you prefer to localise to some other time zone, eg for reproducibility,
|
||||
you can (on unix at least) set the output timezone with the TZ environment variable, eg:
|
||||
```shell
|
||||
```cli
|
||||
$ TZ=-1000 hledger print -f foo.csv # or TZ=-1000 hledger import foo.csv
|
||||
```
|
||||
|
||||
@ -3448,7 +3448,7 @@ Some tips:
|
||||
|
||||
It's a good idea to get rapid feedback while creating/troubleshooting CSV rules.
|
||||
Here's a good way, using entr from [eradman.com/entrproject](https://eradman.com/entrproject):
|
||||
```shell
|
||||
```cli
|
||||
$ ls foo.csv* | entr bash -c 'echo ----; hledger -f foo.csv print desc:SOMEDESC'
|
||||
```
|
||||
A desc: query (eg) is used to select just one, or a few, transactions of interest.
|
||||
@ -3480,7 +3480,7 @@ filename extension.
|
||||
When reading files with the "wrong" extension, you can ensure the CSV reader
|
||||
(and the default field separator) by prefixing the file path with `csv:`, `ssv:` or `tsv:`:
|
||||
Eg:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f ssv:foo.dat print
|
||||
```
|
||||
|
||||
@ -3538,7 +3538,7 @@ There is one exception: balance assertions, if you have generated
|
||||
them, will not be checked, since normally these will work only when
|
||||
the CSV data is part of the main journal. If you do need to check
|
||||
balance assertions generated from CSV right away, pipe into another hledger:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f file.csv print | hledger -f- print
|
||||
```
|
||||
|
||||
@ -3554,7 +3554,7 @@ journal. It is idempotent, so you don't have to remember how many
|
||||
times you ran it or with which version of the CSV.
|
||||
(It keeps state in a hidden `.latest.FILE.csv` file.)
|
||||
This is the easiest way to import CSV data. Eg:
|
||||
```shell
|
||||
```cli
|
||||
# download the latest CSV files, then run this command.
|
||||
# Note, no -f flags needed here.
|
||||
$ hledger import *.csv [--dry]
|
||||
@ -3833,7 +3833,7 @@ currency EUR
|
||||
# set the base account for all txns
|
||||
account1 assets:bank:boi:checking
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f bankofireland-checking.csv print
|
||||
2012-12-07 LODGMENT 529898
|
||||
assets:bank:boi:checking EUR10.0 = EUR131.2
|
||||
@ -3866,7 +3866,7 @@ description %Notes
|
||||
account1 assets:coinbase:cc
|
||||
amount %Quantity_Transacted %Asset @ %Spot_Price_at_Transaction %Spot_Price_Currency
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -f coinbase.csv
|
||||
2021-12-30 Received 100.00 USDC from an external account
|
||||
assets:coinbase:cc 100 USDC @ 0.740000 GBP
|
||||
@ -3920,7 +3920,7 @@ if %fees [1-9]
|
||||
account3 expenses:fees
|
||||
amount3 %fees
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f amazon-orders.csv print
|
||||
2012-07-29 (16000000000000DGLNJPI1P9B8DKPVHL) To Foo. ; status:Completed
|
||||
assets:amazon
|
||||
@ -4059,7 +4059,7 @@ if Google
|
||||
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f paypal-custom.csv print
|
||||
2019-10-01 (60P57143A8206782E) Calm Radio MONTHLY - $1 for the first 2 Months: Me - Order 99309. Item total: $1.00 USD first 2 months, then $6.99 / Month ; itemid:, fromemail:simon@joyful.com, toemail:memberships@calmradio.com, time:03:46:20, type:Subscription Payment, status:Completed
|
||||
assets:online:paypal $-6.99 = $-6.99
|
||||
@ -4137,7 +4137,7 @@ Here is a
|
||||
[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock) to
|
||||
download and some queries to try:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f sample.timeclock balance # current time balances
|
||||
$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
|
||||
$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
|
||||
@ -4181,7 +4181,7 @@ hledger reads this as a transaction on this day with three
|
||||
No commodity symbol is assumed, but we typically interpret it as hours.
|
||||
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot print # .timedot file extension (or timedot: prefix) is required
|
||||
2023-05-01 *
|
||||
(hom:errands) 2.00 ; two hours
|
||||
@ -4263,7 +4263,7 @@ biz:research .
|
||||
inc:client1 .... ....
|
||||
biz:research .
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot print date:2016/2/2
|
||||
2016-02-02 *
|
||||
(inc:client1) 2.00
|
||||
@ -4271,7 +4271,7 @@ $ hledger -f a.timedot print date:2016/2/2
|
||||
2016-02-02 *
|
||||
(biz:research) 0.25
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot bal --daily --tree
|
||||
Balance changes in 2016-02-01-2016-02-03:
|
||||
|
||||
@ -4304,13 +4304,13 @@ $ hledger -f a.timedot print
|
||||
(work:adm) 0.25 ; t:s
|
||||
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot bal
|
||||
1.75 work:adm
|
||||
--------------------
|
||||
1.75
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot bal --pivot t
|
||||
1.00 c
|
||||
0.50 e
|
||||
@ -4347,7 +4347,7 @@ Using `.` as account name separator:
|
||||
fos.hledger.timedot 4h
|
||||
fos.ledger ..
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f a.timedot --alias '/\./=:' bal -t
|
||||
4.50 fos
|
||||
4.00 hledger:timedot
|
||||
@ -4359,7 +4359,7 @@ $ hledger -f a.timedot --alias '/\./=:' bal -t
|
||||
<!--
|
||||
Another sample, download from
|
||||
https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot and try:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f sample.timedot balance # current time balances
|
||||
$ hledger -f sample.timedot register -p 2009/3 # sessions in march 2009
|
||||
$ hledger -f sample.timedot register -p weekly --depth 1 --empty # time summary by week
|
||||
@ -4404,7 +4404,7 @@ commodity A 1,000.00
|
||||
(a) A 1000
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print
|
||||
2023-01-02
|
||||
(a) A 1,000.
|
||||
@ -4414,7 +4414,7 @@ $ hledger print
|
||||
If this is a problem (eg when exporting to [Ledger](/ledger.md#ledger-to-ledger)),
|
||||
you can avoid it by disabling digit group marks, eg with
|
||||
[-c/--commodity](#commodity-styles):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -c 'A 1000.00'
|
||||
2023-01-02
|
||||
(a) A 1000
|
||||
@ -4423,7 +4423,7 @@ $ hledger print -c 'A 1000.00'
|
||||
|
||||
or by forcing print to show decimal digits in all amounts, eg with
|
||||
[--round](#print-amount-style):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --round=soft
|
||||
2023-01-02
|
||||
(a) A 1,000.00
|
||||
@ -4696,13 +4696,13 @@ Examples:
|
||||
|
||||
Show historical balances at end of the 15th day of each month (N is an end date, exclusive as always):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance -H -p "every 16th day"
|
||||
```
|
||||
|
||||
Group postings from the start of wednesday to end of the following tuesday (N is both (inclusive) start date and (exclusive) end date):
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register checking -p "every 3rd day of week"
|
||||
```
|
||||
|
||||
@ -4940,7 +4940,7 @@ Some examples:
|
||||
income:dues -2 EUR ; member: John Doe, kind: Lifetime
|
||||
```
|
||||
Normal balance report showing account names:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance
|
||||
2 EUR assets:bank account
|
||||
-2 EUR income:dues
|
||||
@ -4948,7 +4948,7 @@ $ hledger balance
|
||||
0
|
||||
```
|
||||
Pivoted balance report, using member: tag values instead:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance --pivot member
|
||||
2 EUR
|
||||
-2 EUR John Doe
|
||||
@ -4956,21 +4956,21 @@ $ hledger balance --pivot member
|
||||
0
|
||||
```
|
||||
One way to show only amounts with a member: value (using a [query](#queries)):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance --pivot member tag:member=.
|
||||
-2 EUR John Doe
|
||||
--------------------
|
||||
-2 EUR
|
||||
```
|
||||
Another way (the acct: query matches against the pivoted "account name"):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance --pivot member acct:.
|
||||
-2 EUR John Doe
|
||||
--------------------
|
||||
-2 EUR
|
||||
```
|
||||
Hierarchical reports can be generated with multiple pivots:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance Income:Dues --pivot kind:member
|
||||
-2 EUR Lifetime:John Doe
|
||||
--------------------
|
||||
@ -5247,7 +5247,7 @@ and `hledger bse`'s total will not be disrupted.
|
||||
And, hledger can still infer the cost for cost reporting,
|
||||
but it's not done by default - you must add the `--infer-costs` flag like so:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --infer-costs
|
||||
2022-01-01 one hundred euros purchased at $1.35 each
|
||||
assets:dollars $-135 @@ €100
|
||||
@ -5256,7 +5256,7 @@ $ hledger print --infer-costs
|
||||
equity:conversion €-100
|
||||
|
||||
```
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal --infer-costs -B
|
||||
€-100 assets:dollars
|
||||
€100 assets:euros
|
||||
@ -5286,7 +5286,7 @@ Eg:
|
||||
assets:euros €100 @ $1.35
|
||||
```
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print --infer-equity
|
||||
2022-01-01
|
||||
assets:dollars $-135
|
||||
@ -5316,7 +5316,7 @@ revealing the per-unit cost basis, and providing more flexibility in how you wri
|
||||
```
|
||||
|
||||
All the other variants above can (usually) be rewritten to this final form with:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print -x --infer-costs --infer-equity
|
||||
```
|
||||
|
||||
@ -5507,7 +5507,7 @@ For reference, here is the current behaviour, since hledger 1.25.
|
||||
All of the transactions above are considered balanced (and on each day, the two transactions are considered equivalent).
|
||||
Here are the market prices inferred for B:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- --infer-market-prices prices
|
||||
P 2022-01-01 B A 1
|
||||
P 2022-01-01 B A 1.0
|
||||
@ -5565,17 +5565,17 @@ P 2016/11/01 € $1.10
|
||||
P 2016/12/21 € $1.03
|
||||
```
|
||||
How many euros do I have ?
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f t.j bal -N euros
|
||||
€100 assets:euros
|
||||
```
|
||||
What are they worth at end of nov 3 ?
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f t.j bal -N euros -V -e 2016/11/4
|
||||
$110.00 assets:euros
|
||||
```
|
||||
What are they worth after 2016/12/21 ? (no report end date specified, defaults to today)
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f t.j bal -N euros -V
|
||||
$103.00 assets:euros
|
||||
```
|
||||
@ -5637,7 +5637,7 @@ P 2000-04-01 A 4 B
|
||||
```
|
||||
|
||||
Show the cost of each posting:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- print --cost
|
||||
2000-01-01
|
||||
(a) 5 B
|
||||
@ -5651,7 +5651,7 @@ $ hledger -f- print --cost
|
||||
```
|
||||
|
||||
Show the value as of the last day of the report period (2000-02-29):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- print --value=end date:2000/01-2000/03
|
||||
2000-01-01
|
||||
(a) 2 B
|
||||
@ -5662,7 +5662,7 @@ $ hledger -f- print --value=end date:2000/01-2000/03
|
||||
```
|
||||
|
||||
With no report period specified, that shows the value as of the last day of the journal (2000-03-01):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- print --value=end
|
||||
2000-01-01
|
||||
(a) 3 B
|
||||
@ -5676,7 +5676,7 @@ $ hledger -f- print --value=end
|
||||
```
|
||||
|
||||
Show the current value (the 2000-04-01 price is still in effect today):
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- print --value=now
|
||||
2000-01-01
|
||||
(a) 4 B
|
||||
@ -5690,7 +5690,7 @@ $ hledger -f- print --value=now
|
||||
```
|
||||
|
||||
Show the value on 2000/01/15:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger -f- print --value=2000-01-15
|
||||
2000-01-01
|
||||
(a) 1 B
|
||||
@ -5881,7 +5881,7 @@ Here are some quick examples of how to do some basic tasks with hledger.
|
||||
|
||||
Here's how to list commands and view options and command docs:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ hledger # show available commands
|
||||
$ hledger --help # show common options
|
||||
$ hledger CMD --help # show CMD's options, common options and CMD's documentation
|
||||
@ -5889,7 +5889,7 @@ $ hledger CMD --help # show CMD's options, common options and CMD's document
|
||||
|
||||
You can also view your hledger version's manual in several formats
|
||||
by using the [help command](#help). Eg:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger help # show the hledger manual with info, man or $PAGER (best available)
|
||||
$ hledger help journal # show the journal topic in the hledger manual
|
||||
$ hledger help --help # find out more about the help command
|
||||
@ -5914,7 +5914,7 @@ here are some tips that might help:
|
||||
## Starting a journal file
|
||||
|
||||
hledger looks for your accounting data in a journal file, `$HOME/.hledger.journal` by default:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger stats
|
||||
The hledger journal file "/Users/simon/.hledger.journal" was not found.
|
||||
Please create it first, eg with "hledger add" or a text editor.
|
||||
@ -5924,7 +5924,7 @@ Or, specify an existing journal file with -f or LEDGER_FILE.
|
||||
You can override this by setting the `LEDGER_FILE` environment variable (see below).
|
||||
It's a good practice to keep this important file under version control,
|
||||
and to start a new file each year. So you could do something like this:
|
||||
```shell
|
||||
```cli
|
||||
$ mkdir ~/finance
|
||||
$ cd ~/finance
|
||||
$ git init
|
||||
@ -5951,7 +5951,7 @@ Market prices : 0 ()
|
||||
How to set `LEDGER_FILE` permanently depends on your setup:
|
||||
|
||||
On unix and mac, running these commands in the terminal will work for many people; adapt as needed:
|
||||
```shell
|
||||
```cli
|
||||
$ echo 'export LEDGER_FILE=~/finance/2023.journal' >> ~/.profile
|
||||
$ source ~/.profile
|
||||
```
|
||||
@ -5972,7 +5972,7 @@ and then run `killall Dock` in a terminal window (or restart the machine).
|
||||
On Windows, see <https://www.java.com/en/download/help/path.html>,
|
||||
or try running these commands in a powershell window
|
||||
(let us know if it persists across a reboot, and if you need to be an Administrator):
|
||||
```shell
|
||||
```cli
|
||||
> CD
|
||||
> MKDIR finance
|
||||
> SETX LEDGER_FILE "C:\Users\USERNAME\finance\2023.journal"
|
||||
@ -6013,7 +6013,7 @@ balances on this date. Here are two ways to do it:
|
||||
The = amounts are optional balance assertions, providing extra error checking.
|
||||
|
||||
- The second way: run `hledger add` and follow the prompts to record a similar transaction:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger add
|
||||
Adding transactions to journal file /Users/simon/finance/2023.journal
|
||||
Any command line arguments will be used as defaults.
|
||||
@ -6050,7 +6050,7 @@ balances on this date. Here are two ways to do it:
|
||||
```
|
||||
|
||||
If you're using version control, this could be a good time to commit the journal. Eg:
|
||||
```shell
|
||||
```cli
|
||||
$ git commit -m 'initial balances' 2023.journal
|
||||
```
|
||||
|
||||
@ -6126,7 +6126,7 @@ that, by adding the `*` marker.
|
||||
Eg in the paycheck transaction above, insert `*` between `2023-01-15` and `paycheck`
|
||||
|
||||
If you're using version control, this can be another good time to commit:
|
||||
```shell
|
||||
```cli
|
||||
$ git commit -m 'txns' 2023.journal
|
||||
```
|
||||
|
||||
@ -6135,7 +6135,7 @@ $ git commit -m 'txns' 2023.journal
|
||||
Here are some basic reports.
|
||||
|
||||
Show all transactions:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger print
|
||||
2023-01-01 * opening balances
|
||||
assets:bank:checking $1000
|
||||
@ -6163,7 +6163,7 @@ $ hledger print
|
||||
```
|
||||
|
||||
Show account names, and their hierarchy:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger accounts --tree
|
||||
assets
|
||||
bank
|
||||
@ -6183,7 +6183,7 @@ liabilities
|
||||
```
|
||||
|
||||
Show all account totals:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger balance
|
||||
$4105 assets
|
||||
$4000 bank
|
||||
@ -6203,7 +6203,7 @@ $ hledger balance
|
||||
```
|
||||
|
||||
Show only asset and liability balances, as a flat list, limited to depth 2:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bal assets liabilities -2
|
||||
$4000 assets:bank
|
||||
$105 assets:cash
|
||||
@ -6213,7 +6213,7 @@ $ hledger bal assets liabilities -2
|
||||
```
|
||||
|
||||
Show the same thing without negative numbers, formatted as a simple balance sheet:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger bs -2
|
||||
Balance Sheet 2023-01-16
|
||||
|
||||
@ -6238,7 +6238,7 @@ The final total is your "net worth" on the end date.
|
||||
(Or use `bse` for a full balance sheet with equity.)
|
||||
|
||||
Show income and expense totals, formatted as an income statement:
|
||||
```shell
|
||||
```cli
|
||||
hledger is
|
||||
Income Statement 2023-01-01-2023-01-16
|
||||
|
||||
@ -6263,7 +6263,7 @@ Income Statement 2023-01-01-2023-01-16
|
||||
The final total is your net income during this period.
|
||||
|
||||
Show transactions affecting your wallet, with running total:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger register cash
|
||||
2023-01-01 opening balances assets:cash $100 $100
|
||||
2023-01-10 gift received assets:cash $20 $120
|
||||
@ -6272,7 +6272,7 @@ $ hledger register cash
|
||||
```
|
||||
|
||||
Show weekly posting counts as a bar chart:
|
||||
```shell
|
||||
```cli
|
||||
$ hledger activity -W
|
||||
2019-12-30 *****
|
||||
2023-01-06 ****
|
||||
@ -6343,13 +6343,13 @@ Then select it by setting the `LANG` environment variable.
|
||||
Note, exact spelling and capitalisation of the locale name may be important:
|
||||
Here's one common way to configure this permanently for your shell:
|
||||
|
||||
```shell
|
||||
```cli
|
||||
$ echo "export LANG=en_US.utf8" >>~/.profile
|
||||
# close and re-open terminal window
|
||||
```
|
||||
|
||||
If you are using Nix (not NixOS) for GHC and Hledger, you might need to set the `LOCALE_ARCHIVE` variable:
|
||||
```shell
|
||||
```cli
|
||||
$ echo "export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive" >>~/.profile
|
||||
# close and re-open terminal window
|
||||
```
|
||||
|
||||
Loading…
Reference in New Issue
Block a user