2317 lines
72 KiB
Groff
2317 lines
72 KiB
Groff
.\"t
|
|
|
|
.TH "hledger" "1" "May 2016" "hledger 0.28" "hledger User Manuals"
|
|
|
|
|
|
|
|
.SH NAME
|
|
.PP
|
|
hledger \- a command\-line accounting tool
|
|
.SH SYNOPSIS
|
|
.PP
|
|
\f[C]hledger\ [\-f\ FILE]\ COMMAND\ [OPTIONS]\ [CMDARGS]\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
\f[C]hledger\ [\-f\ FILE]\ ADDONCMD\ \-\-\ [OPTIONS]\ [CMDARGS]\f[]
|
|
.SH DESCRIPTION
|
|
.PP
|
|
hledger is a cross\-platform program for tracking money, time, or any
|
|
other commodity, using double\-entry accounting and a simple, editable
|
|
file format.
|
|
It is inspired by and largely compatible with ledger(1).
|
|
Tested on unix, mac, windows, hledger aims to be a reliable, practical
|
|
tool for daily use.
|
|
.PP
|
|
This is hledger's command\-line interface (there are also curses and web
|
|
interfaces).
|
|
Its basic function is to read a plain text file describing financial
|
|
transactions (in accounting terms, a general journal) and print useful
|
|
reports on standard output, or export them as CSV.
|
|
hledger can also read CSV files, converting them semi\-automatically to
|
|
journal format.
|
|
Additionally, hledger lists other hledger\-* executables found in the
|
|
user's $PATH and can invoke them as subcommands.
|
|
.PP
|
|
The journal file is \f[C]~/.hledger.journal\f[] by default, or another
|
|
file path specified by \f[C]$LEDGER_FILE\f[].
|
|
(This should be a real environment variable, not a shell variable.) You
|
|
can also specify a file with \f[C]\-f\ FILE\f[], or standard input with
|
|
\f[C]\-f\-\f[].
|
|
.PP
|
|
Transactions are dated movements of money between two (or more) named
|
|
accounts, and are recorded with journal entries like this:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
2015/10/16\ bought\ food
|
|
\ expenses:food\ \ \ \ \ \ \ \ \ \ $10
|
|
\ assets:cash
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
For more about the format, see hledger_journal(5).
|
|
.PP
|
|
Most users use a text editor to edit the journal, usually with an editor
|
|
mode such as ledger\-mode for added convenience.
|
|
hledger's interactive add command is another way to record new
|
|
transactions.
|
|
hledger never changes existing transactions.
|
|
.PP
|
|
To get started, you can either save some entries like the above in
|
|
\f[C]~/.hledger.journal\f[], or run \f[C]hledger\ add\f[] and follow the
|
|
prompts.
|
|
Then try some commands like \f[C]hledger\ print\f[] or
|
|
\f[C]hledger\ balance\f[].
|
|
See COMMANDS and EXAMPLES below.
|
|
.SH EXAMPLES
|
|
.PP
|
|
Two simple transactions in hledger journal format:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
2015/9/30\ gift\ received
|
|
\ \ assets:cash\ \ \ $20
|
|
\ \ income:gifts
|
|
|
|
2015/10/16\ farmers\ market
|
|
\ \ expenses:food\ \ \ \ $10
|
|
\ \ assets:cash
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Some basic reports:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ print
|
|
2015/09/30\ gift\ received
|
|
\ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ $20
|
|
\ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ $\-20
|
|
|
|
2015/10/16\ farmers\ market
|
|
\ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ $10
|
|
\ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ $\-10
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ accounts\ \-\-tree
|
|
assets
|
|
\ \ cash
|
|
expenses
|
|
\ \ food
|
|
income
|
|
\ \ gifts
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $10\ \ assets:cash
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $10\ \ expenses:food
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-20\ \ income:gifts
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ register\ cash
|
|
2015/09/30\ gift\ received\ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $20\ \ \ \ \ \ \ \ \ \ \ $20
|
|
2015/10/16\ farmers\ market\ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-10\ \ \ \ \ \ \ \ \ \ \ $10
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
More commands:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ available\ commands
|
|
$\ hledger\ add\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ add\ more\ transactions\ to\ the\ journal\ file
|
|
$\ hledger\ balance\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ all\ accounts\ with\ aggregated\ balances
|
|
$\ hledger\ balance\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ detailed\ help\ for\ balance\ command
|
|
$\ hledger\ balance\ \-\-depth\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ only\ top\-level\ accounts
|
|
$\ hledger\ register\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ account\ postings,\ with\ running\ total
|
|
$\ hledger\ reg\ income\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ postings\ to/from\ income\ accounts
|
|
$\ hledger\ reg\ \[aq]assets:some\ bank:checking\[aq]\ #\ show\ postings\ to/from\ this\ checking\ account
|
|
$\ hledger\ print\ desc:shop\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transactions\ with\ shop\ in\ the\ description
|
|
$\ hledger\ activity\ \-W\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transaction\ counts\ per\ week\ as\ a\ bar\ chart
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
With the journal
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
2016/02/16\ Member\ Fee\ Payment\ John\ Doe
|
|
\ \ \ \ assets:bank\ account\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR
|
|
\ \ \ \ income:member\ fees\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR
|
|
\ \ \ \ \ \ ;\ member:\ John\ Doe
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
the \-\-pivot comand will output the following:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ bal\ \-\-pivot\ member
|
|
\ \ \ \ 2\ EUR\ \ assets:bank\ account
|
|
\ \ \ \-2\ EUR\ \ member:John\ Doe
|
|
\f[]
|
|
.fi
|
|
.SH OPTIONS
|
|
.PP
|
|
To see general usage and the command list: \f[C]hledger\ \-h\f[] or just
|
|
\f[C]hledger\f[]
|
|
.PP
|
|
To see usage for a specific command: \f[C]hledger\ COMMAND\ \-h\f[]
|
|
.PP
|
|
Except for the General options below, options must be written after
|
|
COMMAND, not before it.
|
|
.PP
|
|
Also, when invoking external add\-on commands, their options must be
|
|
written after a double hyphen.
|
|
(Or, you can invoke the external command directly.) Eg:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ ui\ \-\-\ \-\-register\ cash
|
|
$\ hledger\-ui\ \-\-register\ cash
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Options and command arguments can be intermixed.
|
|
Arguments are usually interpreted as a search query which filters the
|
|
data, see QUERIES.
|
|
.PP
|
|
There are three kinds of options.
|
|
General options are always available and can appear anywhere in the
|
|
command line:
|
|
.TP
|
|
.B \f[C]\-h\f[]
|
|
show general usage (or after COMMAND, the command\[aq]s usage)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-help\f[]
|
|
show the current program\[aq]s manual as plain text (or after an add\-on
|
|
COMMAND, the add\-on\[aq]s manual)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-man\f[]
|
|
show the current program\[aq]s manual with man
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-info\f[]
|
|
show the current program\[aq]s manual with info
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-version\f[]
|
|
show version
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-debug=N\f[]
|
|
show debug output if N is 1\-9 (default: 0)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
|
|
use a different input file.
|
|
For stdin, use \-
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-rules\-file=RULESFILE\f[]
|
|
Conversion rules file to use when reading CSV (default: FILE.rules)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-alias=OLD=NEW\f[]
|
|
display accounts named OLD as NEW
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-ignore\-assertions\f[]
|
|
ignore any failing balance assertions in the journal
|
|
.RS
|
|
.RE
|
|
.PP
|
|
Common reporting options are supported by most commands where
|
|
applicable, and individual commands may provide additional
|
|
command\-specific options.
|
|
Both of these must be written after the command name.
|
|
.TP
|
|
.B \f[C]\-b\ \-\-begin=DATE\f[]
|
|
include postings/txns on or after this date
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-e\ \-\-end=DATE\f[]
|
|
include postings/txns before this date
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-D\ \-\-daily\f[]
|
|
multiperiod/multicolumn report by day
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-W\ \-\-weekly\f[]
|
|
multiperiod/multicolumn report by week
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-M\ \-\-monthly\f[]
|
|
multiperiod/multicolumn report by month
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-Q\ \-\-quarterly\f[]
|
|
multiperiod/multicolumn report by quarter
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-Y\ \-\-yearly\f[]
|
|
multiperiod/multicolumn report by year
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-p\ \-\-period=PERIODEXP\f[]
|
|
set start date, end date, and/or reporting interval all at once
|
|
(overrides the flags above)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-date2\f[]
|
|
show, and match with \-b/\-e/\-p/date:, secondary dates instead
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-C\ \-\-cleared\f[]
|
|
include only cleared postings/txns
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-pending\f[]
|
|
include only pending postings/txns
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-U\ \-\-uncleared\f[]
|
|
include only uncleared (and pending) postings/txns
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-R\ \-\-real\f[]
|
|
include only non\-virtual postings
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-depth=N\f[]
|
|
hide accounts/postings deeper than N
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-E\ \-\-empty\f[]
|
|
show items with zero amount, normally hidden
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-B\ \-\-cost\f[]
|
|
show amounts in their cost price\[aq]s commodity
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B `\-\-pivot TAG
|
|
will transform the journal before any other processing by replacing the
|
|
account name of every posting having the tag TAG with content VALUE by
|
|
the account name "TAG:VALUE".
|
|
.RS
|
|
.RE
|
|
The TAG will only match if it is a full\-length match.
|
|
The pivot will only happen if the TAG is on a posting, not if it is on
|
|
the transaction.
|
|
If the tag value is a multi:level:account:name the new account name will
|
|
be "TAG:multi:level:account:name".
|
|
.RS
|
|
.RE
|
|
.SS Multiple files
|
|
.PP
|
|
You can specify multiple \f[C]\-f/\-\-file\ FILE\f[] options.
|
|
This is like combining all the files into one, except they can have
|
|
different formats.
|
|
Also directives and aliases in one file do not affect subsequent files
|
|
(if you need that, use the include directive instead).
|
|
.SS Repeated options
|
|
.PP
|
|
Otherwise, if a reporting option is repeated, the last one takes
|
|
precedence.
|
|
Eg \-p jan \-p feb is equivalent to \-p feb.
|
|
.SS Depth limiting
|
|
.PP
|
|
With the \f[C]\-\-depth\ N\f[] option, commands like account, balance
|
|
and register will show only the uppermost accounts in the account tree,
|
|
down to level N.
|
|
Use this when you want a summary with less detail.
|
|
.SS Smart dates
|
|
.PP
|
|
hledger\[aq]s user interfaces accept a flexible "smart date" syntax
|
|
(unlike dates in the journal file).
|
|
Smart dates allow some english words, can be relative to today\[aq]s
|
|
date, and can have less\-significant date parts omitted (defaulting to
|
|
1).
|
|
.PP
|
|
Examples:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l l.
|
|
T{
|
|
\f[C]2009/1/1\f[], \f[C]2009/01/01\f[], \f[C]2009\-1\-1\f[],
|
|
\f[C]2009.1.1\f[]
|
|
T}@T{
|
|
simple dates, several separators allowed
|
|
T}
|
|
T{
|
|
\f[C]2009/1\f[], \f[C]2009\f[]
|
|
T}@T{
|
|
same as above \- a missing day or month defaults to 1
|
|
T}
|
|
T{
|
|
\f[C]1/1\f[], \f[C]january\f[], \f[C]jan\f[], \f[C]this\ year\f[]
|
|
T}@T{
|
|
relative dates, meaning january 1 of the current year
|
|
T}
|
|
T{
|
|
\f[C]next\ year\f[]
|
|
T}@T{
|
|
january 1 of next year
|
|
T}
|
|
T{
|
|
\f[C]this\ month\f[]
|
|
T}@T{
|
|
the 1st of the current month
|
|
T}
|
|
T{
|
|
\f[C]this\ week\f[]
|
|
T}@T{
|
|
the most recent monday
|
|
T}
|
|
T{
|
|
\f[C]last\ week\f[]
|
|
T}@T{
|
|
the monday of the week before this one
|
|
T}
|
|
T{
|
|
\f[C]lastweek\f[]
|
|
T}@T{
|
|
spaces are optional
|
|
T}
|
|
T{
|
|
\f[C]today\f[], \f[C]yesterday\f[], \f[C]tomorrow\f[]
|
|
T}@T{
|
|
T}
|
|
.TE
|
|
.SS Reporting interval
|
|
.PP
|
|
A reporting interval can be specified so that commands like register,
|
|
balance and activity will divide their reports into multiple report
|
|
periods.
|
|
The basic intervals can be selected with one of \f[C]\-D/\-\-daily\f[],
|
|
\f[C]\-W/\-\-weekly\f[], \f[C]\-M/\-\-monthly\f[],
|
|
\f[C]\-Q/\-\-quarterly\f[], or \f[C]\-Y/\-\-yearly\f[].
|
|
More complex intervals may be specified with a period expression.
|
|
.SS Period expressions
|
|
.PP
|
|
The \f[C]\-p/\-\-period\f[] option accepts period expressions, a
|
|
shorthand way of expressing a start date, end date, and or reporting
|
|
interval all at once.
|
|
Note a period expression on the command line will cause any other date
|
|
flags
|
|
(\f[C]\-b\f[]/\f[C]\-e\f[]/\f[C]\-D\f[]/\f[C]\-W\f[]/\f[C]\-M\f[]/\f[C]\-Q\f[]/\f[C]\-Y\f[])
|
|
to be ignored.
|
|
.PP
|
|
hledger\[aq]s period expressions are similar to Ledger\[aq]s, though not
|
|
identical.
|
|
Here\[aq]s a basic period expression specifying the first quarter of
|
|
2009.
|
|
Note, hledger always treats start dates as inclusive and end dates as
|
|
exclusive:
|
|
.PP
|
|
\f[C]\-p\ "from\ 2009/1/1\ to\ 2009/4/1"\f[]
|
|
.PP
|
|
Keywords like "from" and "to" are optional, and so are the spaces, as
|
|
long as you don\[aq]t run two dates together.
|
|
"to" can also be written as "\-".
|
|
These are equivalent to the above:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l.
|
|
T{
|
|
\f[C]\-p\ "2009/1/1\ 2009/4/1"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p2009/1/1to2009/4/1\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p2009/1/1\-2009/4/1\f[]
|
|
T}
|
|
.TE
|
|
.PP
|
|
Dates are smart dates, so if the current year is 2009, the above can
|
|
also be written as:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l.
|
|
T{
|
|
\f[C]\-p\ "1/1\ 4/1"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "january\-apr"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "this\ year\ to\ 4/1"\f[]
|
|
T}
|
|
.TE
|
|
.PP
|
|
If you specify only one date, the missing start or end date will be the
|
|
earliest or latest transaction in your journal:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l l.
|
|
T{
|
|
\f[C]\-p\ "from\ 2009/1/1"\f[]
|
|
T}@T{
|
|
everything after january 1, 2009
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "from\ 2009/1"\f[]
|
|
T}@T{
|
|
the same
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "from\ 2009"\f[]
|
|
T}@T{
|
|
the same
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "to\ 2009"\f[]
|
|
T}@T{
|
|
everything before january 1, 2009
|
|
T}
|
|
.TE
|
|
.PP
|
|
A single date with no "from" or "to" defines both the start and end date
|
|
like so:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l l.
|
|
T{
|
|
\f[C]\-p\ "2009"\f[]
|
|
T}@T{
|
|
the year 2009; equivalent to "2009/1/1 to 2010/1/1"
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "2009/1"\f[]
|
|
T}@T{
|
|
the month of jan; equivalent to "2009/1/1 to 2009/2/1"
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "2009/1/1"\f[]
|
|
T}@T{
|
|
just that day; equivalent to "2009/1/1 to 2009/1/2"
|
|
T}
|
|
.TE
|
|
.PP
|
|
Period expressions can also start with (or be) a reporting interval:
|
|
\f[C]daily\f[], \f[C]weekly\f[], \f[C]monthly\f[], \f[C]quarterly\f[],
|
|
\f[C]yearly\f[], or one of the \f[C]every\ ...\f[] expressions below.
|
|
Optionally the word \f[C]in\f[] may appear between the reporting
|
|
interval and the start/end dates.
|
|
Examples:
|
|
.PP
|
|
.TS
|
|
tab(@);
|
|
l.
|
|
T{
|
|
\f[C]\-p\ "weekly\ from\ 2009/1/1\ to\ 2009/4/1"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "monthly\ in\ 2008"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "bimonthly\ from\ 2008"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "quarterly"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "every\ 2\ weeks"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "every\ 5\ days\ from\ 1/3"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "every\ 15th\ day\ of\ month"\f[]
|
|
T}
|
|
T{
|
|
\f[C]\-p\ "every\ 4th\ day\ of\ week"\f[]
|
|
T}
|
|
.TE
|
|
.SS Regular Expressions
|
|
.PP
|
|
hledger uses regular expressions in a number of places:
|
|
.IP \[bu] 2
|
|
query terms, on the command line and in the hledger\-web search form:
|
|
\f[C]REGEX\f[], \f[C]desc:REGEX\f[], \f[C]cur:REGEX\f[],
|
|
\f[C]tag:...=REGEX\f[]
|
|
.IP \[bu] 2
|
|
CSV rules conditional blocks: \f[C]if\ REGEX\ ...\f[]
|
|
.IP \[bu] 2
|
|
account alias directives and options:
|
|
\f[C]alias\ /REGEX/\ =\ REPLACEMENT\f[],
|
|
\f[C]\-\-alias\ /REGEX/=REPLACEMENT\f[]
|
|
.PP
|
|
hledger\[aq]s regular expressions come from the regex\-tdfa library.
|
|
In general they:
|
|
.IP \[bu] 2
|
|
are case insensitive
|
|
.IP \[bu] 2
|
|
are infix matching (do not need to match the entire thing being matched)
|
|
.IP \[bu] 2
|
|
are POSIX extended regular expressions
|
|
.IP \[bu] 2
|
|
also support GNU word boundaries (\\<, \\>, \\b, \\B)
|
|
.IP \[bu] 2
|
|
and parenthesised capturing groups and numeric backreferences in
|
|
replacement strings
|
|
.IP \[bu] 2
|
|
do not support mode modifiers like (?s)
|
|
.PP
|
|
Some things to note:
|
|
.IP \[bu] 2
|
|
In the \f[C]alias\f[] directive and \f[C]\-\-alias\f[] option, regular
|
|
expressions must be enclosed in forward slashes (\f[C]/REGEX/\f[]).
|
|
Elsewhere in hledger, these are not required.
|
|
.IP \[bu] 2
|
|
To match a regular expression metacharacter like \f[C]$\f[] as a literal
|
|
character, prepend a backslash.
|
|
Eg to search for amounts with the dollar sign in hledger\-web, write
|
|
\f[C]cur:\\$\f[].
|
|
.IP \[bu] 2
|
|
On the command line, some metacharacters like \f[C]$\f[] have a special
|
|
meaning to the shell and so must be escaped a second time, with single
|
|
or double quotes or another backslash.
|
|
Eg, to match amounts with the dollar sign from the command line, write
|
|
\f[C]cur:\[aq]\\$\[aq]\f[] or \f[C]cur:\\\\$\f[].
|
|
.SH QUERIES
|
|
.PP
|
|
One of hledger\[aq]s strengths is being able to quickly report on
|
|
precise subsets of your data.
|
|
Most commands accept an optional query expression, written as arguments
|
|
after the command name, to filter the data by date, account name or
|
|
other criteria.
|
|
The syntax is similar to a web search: one or more space\-separated
|
|
search terms, quotes to enclose whitespace, optional prefixes to match
|
|
specific fields.
|
|
Multiple search terms are combined as follows:
|
|
.PP
|
|
All commands except print: show transactions/postings/accounts which
|
|
match (or negatively match)
|
|
.IP \[bu] 2
|
|
any of the description terms AND
|
|
.IP \[bu] 2
|
|
any of the account terms AND
|
|
.IP \[bu] 2
|
|
all the other terms.
|
|
.PP
|
|
The print command: show transactions which
|
|
.IP \[bu] 2
|
|
match any of the description terms AND
|
|
.IP \[bu] 2
|
|
have any postings matching any of the positive account terms AND
|
|
.IP \[bu] 2
|
|
have no postings matching any of the negative account terms AND
|
|
.IP \[bu] 2
|
|
match all the other terms.
|
|
.PP
|
|
The following kinds of search terms can be used:
|
|
.TP
|
|
.B \f[B]\f[C]REGEX\f[]\f[]
|
|
match account names by this regular expression
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]acct:REGEX\f[]\f[]
|
|
same as above
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]amt:N,\ amt:<N,\ amt:<=N,\ amt:>N,\ amt:>=N\f[]\f[]
|
|
match postings with a single\-commodity amount that is equal to, less
|
|
than, or greater than N.
|
|
(Multi\-commodity amounts are not tested, and will always match.) The
|
|
comparison has two modes: if N is preceded by a + or \- sign (or is 0),
|
|
the two signed numbers are compared.
|
|
Otherwise, the absolute magnitudes are compared, ignoring sign.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]code:REGEX\f[]\f[]
|
|
match by transaction code (eg check number)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]cur:REGEX\f[]\f[]
|
|
match postings or transactions including any amounts whose
|
|
currency/commodity symbol is fully matched by REGEX.
|
|
(For a partial match, use \f[C]\&.*REGEX.*\f[]).
|
|
Note, to match characters which are regex\-significant, like the dollar
|
|
sign (\f[C]$\f[]), you need to prepend \f[C]\\\f[].
|
|
And when using the command line you need to add one more level of
|
|
quoting to hide it from the shell, so eg do:
|
|
\f[C]hledger\ print\ cur:\[aq]\\$\[aq]\f[] or
|
|
\f[C]hledger\ print\ cur:\\\\$\f[].
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]desc:REGEX\f[]\f[]
|
|
match transaction descriptions
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]date:PERIODEXPR\f[]\f[]
|
|
match dates within the specified period.
|
|
PERIODEXPR should not include a reporting interval.
|
|
The command\-line \f[C]\-\-date2\f[] flag makes this match secondary
|
|
dates instead (like the \f[C]\-b\f[]/\f[C]\-e\f[]/\f[C]\-p\f[] options).
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]date2:PERIODEXPR\f[]\f[]
|
|
match secondary dates within the specified period.
|
|
PERIODEXPR should not include a reporting interval.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]depth:N\f[]\f[]
|
|
match (or display, depending on command) accounts at or above this depth
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]real:,\ real:0\f[]\f[]
|
|
match real or virtual postings respectively
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]status:*,\ status:!,\ status:\f[]\f[]
|
|
match cleared, pending, or uncleared/pending transactions respectively
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]tag:REGEX[=REGEX]\f[]\f[]
|
|
match by tag name, and optionally also by tag value.
|
|
Note a tag: query is considered to match a transaction if it matches any
|
|
of the postings.
|
|
Also remember that postings inherit the tags of their parent
|
|
transaction.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[B]\f[C]not:\f[]\f[]
|
|
before any of the above negates the match.
|
|
.RS
|
|
.RE
|
|
.PP
|
|
Some of these can also be expressed as command\-line options (eg
|
|
\f[C]depth:2\f[] is equivalent to \f[C]\-\-depth\ 2\f[]).
|
|
Generally you can mix options and query arguments, and the resulting
|
|
query will be their intersection (perhaps excluding the
|
|
\f[C]\-p/\-\-period\f[] option).
|
|
.SH COMMANDS
|
|
.PP
|
|
hledger provides a number of subcommands; \f[C]hledger\f[] with no
|
|
arguments shows a list.
|
|
.PP
|
|
If you install additional \f[C]hledger\-*\f[] packages, or if you put
|
|
programs or scripts named \f[C]hledger\-NAME\f[] in your PATH, these
|
|
will also be listed as subcommands.
|
|
.PP
|
|
Run a subcommand by writing its name as first argument (eg
|
|
\f[C]hledger\ incomestatement\f[]).
|
|
You can also write any unambiguous prefix of a command name
|
|
(\f[C]hledger\ inc\f[]), or one of the standard short aliases displayed
|
|
in the command list (\f[C]hledger\ is\f[]).
|
|
.SS accounts
|
|
.PP
|
|
Show account names.
|
|
.TP
|
|
.B \f[C]\-\-tree\f[]
|
|
show short account names, as a tree
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-flat\f[]
|
|
show full account names, as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-drop=N\f[]
|
|
in flat mode: omit N leading account name parts
|
|
.RS
|
|
.RE
|
|
.PP
|
|
This command lists all account names that are in use (ie, all the
|
|
accounts which have at least one transaction posting to them).
|
|
With query arguments, only matched account names are shown.
|
|
.PP
|
|
It shows a flat list by default.
|
|
With \f[C]\-\-tree\f[], it uses indentation to show the account
|
|
hierarchy.
|
|
.PP
|
|
In flat mode you can add \f[C]\-\-drop\ N\f[] to omit the first few
|
|
account name components.
|
|
.PP
|
|
Examples:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ accounts\ \-\-tree
|
|
assets
|
|
\ \ bank
|
|
\ \ \ \ checking
|
|
\ \ \ \ saving
|
|
\ \ cash
|
|
expenses
|
|
\ \ food
|
|
\ \ supplies
|
|
income
|
|
\ \ gifts
|
|
\ \ salary
|
|
liabilities
|
|
\ \ debts
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ accounts\ \-\-drop\ 1
|
|
bank:checking
|
|
bank:saving
|
|
cash
|
|
food
|
|
supplies
|
|
gifts
|
|
salary
|
|
debts
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ accounts
|
|
assets:bank:checking
|
|
assets:bank:saving
|
|
assets:cash
|
|
expenses:food
|
|
expenses:supplies
|
|
income:gifts
|
|
income:salary
|
|
liabilities:debts
|
|
\f[]
|
|
.fi
|
|
.SS activity
|
|
.PP
|
|
Show an ascii barchart of posting counts per interval.
|
|
.PP
|
|
The activity command displays an ascii histogram showing transaction
|
|
counts by day, week, month or other reporting interval (by day is the
|
|
default).
|
|
With query arguments, it counts only matched transactions.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ activity\ \-\-quarterly
|
|
2008\-01\-01\ **
|
|
2008\-04\-01\ *******
|
|
2008\-07\-01\
|
|
2008\-10\-01\ **
|
|
\f[]
|
|
.fi
|
|
.SS add
|
|
.PP
|
|
Prompt for transactions and add them to the journal.
|
|
.TP
|
|
.B \f[C]\-\-no\-new\-accounts\f[]
|
|
don\[aq]t allow creating new accounts; helps prevent typos when entering
|
|
account names
|
|
.RS
|
|
.RE
|
|
.PP
|
|
Many hledger users edit their journals directly with a text editor, or
|
|
generate them from CSV.
|
|
For more interactive data entry, there is the \f[C]add\f[] command,
|
|
which prompts interactively on the console for new transactions, and
|
|
appends them to the journal file (if there are multiple
|
|
\f[C]\-f\ FILE\f[] options, the first file is used.) Existing
|
|
transactions are not changed.
|
|
This is the only hledger command that writes to the journal file.
|
|
.PP
|
|
To use it, just run \f[C]hledger\ add\f[] and follow the prompts.
|
|
You can add as many transactions as you like; when you are finished,
|
|
enter \f[C]\&.\f[] or press control\-d or control\-c to exit.
|
|
.PP
|
|
Features:
|
|
.IP \[bu] 2
|
|
add tries to provide useful defaults, using the most similar recent
|
|
transaction (by description) as a template.
|
|
.IP \[bu] 2
|
|
You can also set the initial defaults with command line arguments.
|
|
.IP \[bu] 2
|
|
Readline\-style edit keys can be used during data entry.
|
|
.IP \[bu] 2
|
|
The tab key will auto\-complete whenever possible \- accounts,
|
|
descriptions, dates (\f[C]yesterday\f[], \f[C]today\f[],
|
|
\f[C]tomorrow\f[]).
|
|
If the input area is empty, it will insert the default value.
|
|
.IP \[bu] 2
|
|
If the journal defines a default commodity, it will be added to any bare
|
|
numbers entered.
|
|
.IP \[bu] 2
|
|
A parenthesised transaction code may be entered following a date.
|
|
.IP \[bu] 2
|
|
Comments and tags may be entered following a description or amount.
|
|
.IP \[bu] 2
|
|
If you make a mistake, enter \f[C]<\f[] at any prompt to restart the
|
|
transaction.
|
|
.IP \[bu] 2
|
|
Input prompts are displayed in a different colour when the terminal
|
|
supports it.
|
|
.PP
|
|
Example (see the tutorial for a detailed explanation):
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ add
|
|
Adding\ transactions\ to\ journal\ file\ /src/hledger/data/sample.journal
|
|
Any\ command\ line\ arguments\ will\ be\ used\ as\ defaults.
|
|
Use\ tab\ key\ to\ complete,\ readline\ keys\ to\ edit,\ enter\ to\ accept\ defaults.
|
|
An\ optional\ (CODE)\ may\ follow\ transaction\ dates.
|
|
An\ optional\ ;\ COMMENT\ may\ follow\ descriptions\ or\ amounts.
|
|
If\ you\ make\ a\ mistake,\ enter\ <\ at\ any\ prompt\ to\ restart\ the\ transaction.
|
|
To\ end\ a\ transaction,\ enter\ .\ when\ prompted.
|
|
To\ quit,\ enter\ .\ at\ a\ date\ prompt\ or\ press\ control\-d\ or\ control\-c.
|
|
Date\ [2015/05/22]:\
|
|
Description:\ supermarket
|
|
Account\ 1:\ expenses:food
|
|
Amount\ \ 1:\ $10
|
|
Account\ 2:\ assets:checking
|
|
Amount\ \ 2\ [$\-10.0]:\
|
|
Account\ 3\ (or\ .\ or\ enter\ to\ finish\ this\ transaction):\ .
|
|
2015/05/22\ supermarket
|
|
\ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ $10
|
|
\ \ \ \ assets:checking\ \ \ \ \ \ \ \ $\-10.0
|
|
|
|
Save\ this\ transaction\ to\ the\ journal\ ?\ [y]:\
|
|
Saved.
|
|
Starting\ the\ next\ transaction\ (.\ or\ ctrl\-D/ctrl\-C\ to\ quit)
|
|
Date\ [2015/05/22]:\ <CTRL\-D>\ $
|
|
\f[]
|
|
.fi
|
|
.SS balance
|
|
.PP
|
|
Show accounts and their balances.
|
|
Alias: bal.
|
|
.TP
|
|
.B \f[C]\-\-tree\f[]
|
|
show short account names, as a tree
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-flat\f[]
|
|
show full account names, as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-drop=N\f[]
|
|
in flat mode: omit N leading account name parts
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-format=LINEFORMAT\f[]
|
|
in single\-column balance reports: use this custom line format
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-no\-elide\f[]
|
|
in tree mode: don\[aq]t squash boring parent accounts
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-H\ \-\-historical\f[]
|
|
in multicolumn mode: show historical ending balances
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-cumulative\f[]
|
|
in multicolumn mode: show accumulated ending balances
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-A\ \-\-average\f[]
|
|
in multicolumn mode: show a row average column
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-T\ \-\-row\-total\f[]
|
|
in multicolumn mode: show a row total column
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-N\ \-\-no\-total\f[]
|
|
don\[aq]t show the final total row
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-V\ \-\-value\f[]
|
|
show amounts as their current market value in their default valuation
|
|
commodity
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
|
|
write output to FILE instead of stdout.
|
|
A recognised FMT suffix influences the format.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
|
|
select the output format.
|
|
Supported formats: txt, csv.
|
|
.RS
|
|
.RE
|
|
.PP
|
|
The balance command displays accounts and balances.
|
|
It is hledger\[aq]s most featureful and most useful command.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ gifts
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ salary
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
More precisely, the balance command shows the \f[I]change\f[] to each
|
|
account\[aq]s balance caused by all (matched) postings.
|
|
In the common case where you do not filter by date and your journal sets
|
|
the correct opening balances, this is the same as the account\[aq]s
|
|
ending balance.
|
|
.PP
|
|
By default, accounts are displayed hierarchically, with subaccounts
|
|
indented below their parent.
|
|
"Boring" accounts, which contain a single interesting subaccount and no
|
|
balance of their own, are elided into the following line for more
|
|
compact output.
|
|
(Use \f[C]\-\-no\-elide\f[] to prevent this.)
|
|
.PP
|
|
Each account\[aq]s balance is the "inclusive" balance \- it includes the
|
|
balances of any subaccounts.
|
|
.PP
|
|
Accounts which have zero balance (and no non\-zero subaccounts) are
|
|
omitted.
|
|
Use \f[C]\-E/\-\-empty\f[] to show them.
|
|
.PP
|
|
A final total is displayed by default; use \f[C]\-N/\-\-no\-total\f[] to
|
|
suppress it:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-p\ 2008/6\ expenses\ \-\-no\-total
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
|
|
\f[]
|
|
.fi
|
|
.SS Flat mode
|
|
.PP
|
|
To see a flat list of full account names instead of the default
|
|
hierarchical display, use \f[C]\-\-flat\f[].
|
|
In this mode, accounts (unless depth\-clipped) show their "exclusive"
|
|
balance, excluding any subaccount balances.
|
|
In this mode, you can also use \f[C]\-\-drop\ N\f[] to omit the first
|
|
few account name components.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-p\ 2008/6\ expenses\ \-N\ \-\-flat\ \-\-drop\ 1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ food
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ supplies
|
|
\f[]
|
|
.fi
|
|
.SS Depth limited balance reports
|
|
.PP
|
|
With \f[C]\-\-depth\ N\f[], balance shows accounts only to the specified
|
|
depth.
|
|
This is very useful to show a complex charts of accounts in less detail.
|
|
In flat mode, balances from accounts below the depth limit will be shown
|
|
as part of a parent account at the depth limit.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-N\ \-\-depth\ 1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities
|
|
\f[]
|
|
.fi
|
|
.SS Multicolumn balance reports
|
|
.PP
|
|
With a reporting interval, multiple balance columns will be shown, one
|
|
for each report period.
|
|
There are three types of multi\-column balance report, showing different
|
|
information:
|
|
.IP "1." 3
|
|
By default: each column shows the sum of postings in that period, ie the
|
|
account\[aq]s change of balance in that period.
|
|
This is useful eg for a monthly income statement:
|
|
.RS 4
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-\-quarterly\ income\ expenses\ \-E
|
|
Balance\ changes\ in\ 2008:
|
|
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008q1\ \ 2008q2\ \ 2008q3\ \ 2008q4\
|
|
===================++=================================
|
|
\ expenses:food\ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\
|
|
\ expenses:supplies\ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\
|
|
\ income:gifts\ \ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\
|
|
\ income:salary\ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\
|
|
\f[]
|
|
.fi
|
|
.RE
|
|
.IP "2." 3
|
|
With \f[C]\-\-cumulative\f[]: each column shows the ending balance for
|
|
that period, accumulating the changes across periods, starting from 0 at
|
|
the report start date:
|
|
.RS 4
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-\-quarterly\ income\ expenses\ \-E\ \-\-cumulative
|
|
Ending\ balances\ (cumulative)\ in\ 2008:
|
|
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008/03/31\ \ 2008/06/30\ \ 2008/09/30\ \ 2008/12/31\
|
|
===================++=================================================
|
|
\ expenses:food\ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\
|
|
\ expenses:supplies\ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\
|
|
\ income:gifts\ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\
|
|
\ income:salary\ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\
|
|
\f[]
|
|
.fi
|
|
.RE
|
|
.IP "3." 3
|
|
With \f[C]\-\-historical/\-H\f[]: each column shows the actual
|
|
historical ending balance for that period, accumulating the changes
|
|
across periods, starting from the actual balance at the report start
|
|
date.
|
|
This is useful eg for a multi\-period balance sheet, and when you are
|
|
showing only the data after a certain start date:
|
|
.RS 4
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ ^assets\ ^liabilities\ \-\-quarterly\ \-\-historical\ \-\-begin\ 2008/4/1
|
|
Ending\ balances\ (historical)\ in\ 2008/04/01\-2008/12/31:
|
|
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008/06/30\ \ 2008/09/30\ \ 2008/12/31\
|
|
======================++=====================================
|
|
\ assets:bank:checking\ ||\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ 0\
|
|
\ assets:bank:saving\ \ \ ||\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\
|
|
\ assets:cash\ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-2\ \ \ \ \ \ \ \ \ $\-2\ \ \ \ \ \ \ \ \ $\-2\
|
|
\ liabilities:debts\ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\
|
|
\f[]
|
|
.fi
|
|
.RE
|
|
.PP
|
|
Multi\-column balance reports display accounts in flat mode by default;
|
|
to see the hierarchy, use \f[C]\-\-tree\f[].
|
|
.PP
|
|
With a reporting interval (like \f[C]\-\-quarterly\f[] above), the
|
|
report start/end dates will be adjusted if necessary so that they
|
|
encompass the displayed report periods.
|
|
This is so that the first and last periods will be "full" and comparable
|
|
to the others.
|
|
.PP
|
|
The \f[C]\-E/\-\-empty\f[] flag does two things in multicolumn balance
|
|
reports: first, the report will show all columns within the specified
|
|
report period (without \-E, leading and trailing columns with all zeroes
|
|
are not shown).
|
|
Second, all accounts which existed at the report start date will be
|
|
considered, not just the ones with activity during the report period
|
|
(use \-E to include low\-activity accounts which would otherwise would
|
|
be omitted).
|
|
.PP
|
|
The \f[C]\-T/\-\-row\-total\f[] flag adds an additional column showing
|
|
the total for each row.
|
|
.PP
|
|
The \f[C]\-A/\-\-average\f[] flag adds a column showing the average
|
|
value in each row.
|
|
.PP
|
|
Here\[aq]s an example of all three:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-Q\ income\ expenses\ \-\-tree\ \-ETA
|
|
Balance\ changes\ in\ 2008:
|
|
|
|
\ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008q1\ \ 2008q2\ \ 2008q3\ \ 2008q4\ \ \ \ Total\ \ Average\
|
|
============++===================================================
|
|
\ expenses\ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $2\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $2\ \ \ \ \ \ \ $1\
|
|
\ \ \ food\ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ 0\
|
|
\ \ \ supplies\ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ 0\
|
|
\ income\ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-2\ \ \ \ \ \ $\-1\
|
|
\ \ \ gifts\ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ 0\
|
|
\ \ \ salary\ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ 0\
|
|
\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ 0\
|
|
|
|
#\ Average\ is\ rounded\ to\ the\ dollar\ here\ since\ all\ journal\ amounts\ are
|
|
\f[]
|
|
.fi
|
|
.SS Market value
|
|
.PP
|
|
The \f[C]\-V/\-\-value\f[] flag converts all the reported amounts to
|
|
their "current market value" using their default market price.
|
|
That is the latest market price (P directive) found in the journal (or
|
|
an included file), for the amount\[aq]s commodity, dated on or before
|
|
the report end date.
|
|
.PP
|
|
Unlike Ledger, hledger\[aq]s \-V only uses the market prices recorded
|
|
with P directives, ignoring transaction prices recorded as part of
|
|
posting amounts (which \-B/\-\-cost uses).
|
|
Using \-B and \-V together is allowed.
|
|
.SS Custom balance output
|
|
.PP
|
|
In simple (non\-multi\-column) balance reports, you can customise the
|
|
output with \f[C]\-\-format\ FMT\f[]:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-\-format\ "%20(account)\ %12(total)"
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ $\-1
|
|
\ \ \ \ \ \ \ \ \ bank:saving\ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cash\ \ \ \ \ \ \ \ \ \ $\-2
|
|
\ \ \ \ \ \ \ \ \ \ \ \ expenses\ \ \ \ \ \ \ \ \ \ \ $2
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ food\ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ supplies\ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ income\ \ \ \ \ \ \ \ \ \ $\-2
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ gifts\ \ \ \ \ \ \ \ \ \ $\-1
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ salary\ \ \ \ \ \ \ \ \ \ $\-1
|
|
\ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ $1
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The FMT format string (plus a newline) specifies the formatting applied
|
|
to each account/balance pair.
|
|
It may contain any suitable text, with data fields interpolated like so:
|
|
.PP
|
|
\f[C]%[MIN][.MAX](FIELDNAME)\f[]
|
|
.IP \[bu] 2
|
|
MIN pads with spaces to at least this width (optional)
|
|
.IP \[bu] 2
|
|
MAX truncates at this width (optional)
|
|
.IP \[bu] 2
|
|
FIELDNAME must be enclosed in parentheses, and can be one of:
|
|
.RS 2
|
|
.IP \[bu] 2
|
|
\f[C]depth_spacer\f[] \- a number of spaces equal to the account\[aq]s
|
|
depth, or if MIN is specified, MIN * depth spaces.
|
|
.IP \[bu] 2
|
|
\f[C]account\f[] \- the account\[aq]s name
|
|
.IP \[bu] 2
|
|
\f[C]total\f[] \- the account\[aq]s balance/posted total, right
|
|
justified
|
|
.RE
|
|
.PP
|
|
Also, FMT can begin with an optional prefix to control how
|
|
multi\-commodity amounts are rendered:
|
|
.IP \[bu] 2
|
|
\f[C]%_\f[] \- render on multiple lines, bottom\-aligned (the default)
|
|
.IP \[bu] 2
|
|
\f[C]%^\f[] \- render on multiple lines, top\-aligned
|
|
.IP \[bu] 2
|
|
\f[C]%,\f[] \- render on one line, comma\-separated
|
|
.PP
|
|
There are some quirks.
|
|
Eg in one\-line mode, \f[C]%(depth_spacer)\f[] has no effect, instead
|
|
\f[C]%(account)\f[] has indentation built in.
|
|
Experimentation may be needed to get pleasing results.
|
|
.PP
|
|
Some example formats:
|
|
.IP \[bu] 2
|
|
\f[C]%(total)\f[] \- the account\[aq]s total
|
|
.IP \[bu] 2
|
|
\f[C]%\-20.20(account)\f[] \- the account\[aq]s name, left justified,
|
|
padded to 20 characters and clipped at 20 characters
|
|
.IP \[bu] 2
|
|
\f[C]%,%\-50(account)\ \ %25(total)\f[] \- account name padded to 50
|
|
characters, total padded to 20 characters, with multiple commodities
|
|
rendered on one line
|
|
.IP \[bu] 2
|
|
\f[C]%20(total)\ \ %2(depth_spacer)%\-(account)\f[] \- the default
|
|
format for the single\-column balance report
|
|
.SS Output destination
|
|
.PP
|
|
The balance, print, register and stats commands can write their output
|
|
to a destination other than the console.
|
|
This is controlled by the \f[C]\-o/\-\-output\-file\f[] option.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-o\ \-\ \ \ \ \ #\ write\ to\ stdout\ (the\ default)
|
|
$\ hledger\ balance\ \-o\ FILE\ \ #\ write\ to\ FILE
|
|
\f[]
|
|
.fi
|
|
.SS CSV output
|
|
.PP
|
|
The balance, print and register commands can write their output as CSV.
|
|
This is useful for exporting data to other applications, eg to make
|
|
charts in a spreadsheet.
|
|
This is controlled by the \f[C]\-O/\-\-output\-format\f[] option, or by
|
|
specifying a \f[C]\&.csv\f[] file extension with
|
|
\f[C]\-o/\-\-output\-file\f[].
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-O\ csv\ \ \ \ \ \ \ #\ write\ CSV\ to\ stdout
|
|
$\ hledger\ balance\ \-o\ FILE.csv\ \ #\ write\ CSV\ to\ FILE.csv
|
|
\f[]
|
|
.fi
|
|
.SS balancesheet
|
|
.PP
|
|
Show a balance sheet.
|
|
Alias: bs.
|
|
.TP
|
|
.B \f[C]\-\-flat\f[]
|
|
show full account names, as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-drop=N\f[]
|
|
in flat mode: omit N leading account name parts
|
|
.RS
|
|
.RE
|
|
.PP
|
|
This command displays a simple balance sheet.
|
|
It currently assumes that you have top\-level accounts named
|
|
\f[C]asset\f[] and \f[C]liability\f[] (plural forms also allowed.)
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balancesheet
|
|
Balance\ Sheet
|
|
|
|
Assets:
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
|
|
Liabilities:
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
|
|
Total:
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.SS cashflow
|
|
.PP
|
|
Show a cashflow statement.
|
|
Alias: cf.
|
|
.TP
|
|
.B \f[C]\-\-flat\f[]
|
|
show full account names, as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-drop=N\f[]
|
|
in flat mode: omit N leading account name parts
|
|
.RS
|
|
.RE
|
|
.PP
|
|
This command displays a simple cashflow statement It shows the change in
|
|
all "cash" (ie, liquid assets) accounts for the period.
|
|
It currently assumes that cash accounts are under a top\-level account
|
|
named \f[C]asset\f[] and do not contain \f[C]receivable\f[] or
|
|
\f[C]A/R\f[] (plural forms also allowed.)
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ cashflow
|
|
Cashflow\ Statement
|
|
|
|
Cash\ flows:
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
|
|
Total:
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
\f[]
|
|
.fi
|
|
.SS help
|
|
.PP
|
|
Show any of the hledger manuals.
|
|
.PP
|
|
The \f[C]help\f[] command displays any of the main hledger man pages.
|
|
(Unlike \f[C]hledger\ \-\-help\f[], which displays only the hledger man
|
|
page.) Run it with no arguments to list available topics (their names
|
|
are shortened for easier typing), and run \f[C]hledger\ help\ TOPIC\f[]
|
|
to select one.
|
|
The output is similar to a man page, but fixed width.
|
|
It may be long, so you may wish to pipe it into a pager.
|
|
See also info and man.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ help
|
|
Choose\ a\ topic,\ eg:\ hledger\ help\ cli
|
|
cli,\ ui,\ web,\ api,\ journal,\ csv,\ timeclock,\ timedot
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ help\ cli\ |\ less
|
|
|
|
hledger(1)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hledger\ User\ Manuals\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hledger(1)
|
|
|
|
|
|
|
|
NAME
|
|
\ \ \ \ \ \ \ hledger\ \-\ a\ command\-line\ accounting\ tool
|
|
|
|
SYNOPSIS
|
|
\ \ \ \ \ \ \ hledger\ [\-f\ FILE]\ COMMAND\ [OPTIONS]\ [CMDARGS]
|
|
\ \ \ \ \ \ \ hledger\ [\-f\ FILE]\ ADDONCMD\ \-\-\ [OPTIONS]\ [CMDARGS]
|
|
:
|
|
\f[]
|
|
.fi
|
|
.SS incomestatement
|
|
.PP
|
|
Show an income statement.
|
|
Alias: is.
|
|
.TP
|
|
.B \f[C]\-\-flat\f[]
|
|
show full account names, as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-drop=N\f[]
|
|
in flat mode: omit N leading account name parts
|
|
.RS
|
|
.RE
|
|
.PP
|
|
This command displays a simple income statement.
|
|
It currently assumes that you have top\-level accounts named
|
|
\f[C]income\f[] (or \f[C]revenue\f[]) and \f[C]expense\f[] (plural forms
|
|
also allowed.)
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ incomestatement
|
|
Income\ Statement
|
|
|
|
Revenues:
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ gifts
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ salary
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
|
|
Expenses:
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2
|
|
|
|
Total:
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.SS info
|
|
.PP
|
|
Show any of the hledger manuals using info.
|
|
.PP
|
|
The \f[C]info\f[] command displays any of the hledger reference manuals
|
|
using the info hypertextual documentation viewer.
|
|
This can be a very efficient way to browse large manuals.
|
|
It requires the "info" program to be available in your PATH.
|
|
.PP
|
|
As with help, run it with no arguments to list available topics
|
|
(manuals).
|
|
.SS man
|
|
.PP
|
|
Show any of the hledger manuals using man.
|
|
.PP
|
|
The \f[C]man\f[] command displays any of the hledger reference manuals
|
|
using man, the standard documentation viewer on unix systems.
|
|
This will fit the text to your terminal width, and probably invoke a
|
|
pager automatically.
|
|
It requires the "man" program to be available in your PATH.
|
|
.PP
|
|
As with help, run it with no arguments to list available topics
|
|
(manuals).
|
|
.SS print
|
|
.PP
|
|
Show transactions from the journal.
|
|
.TP
|
|
.B \f[C]\-m\ STR\ \-\-match=STR\f[]
|
|
show the transaction whose description is most similar to STR, and is
|
|
most recent
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
|
|
write output to FILE instead of stdout.
|
|
A recognised FMT suffix influences the format.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
|
|
select the output format.
|
|
Supported formats: txt, csv.
|
|
.RS
|
|
.RE
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ print
|
|
2008/01/01\ income
|
|
\ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
|
|
2008/06/01\ gift
|
|
\ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
|
|
2008/06/02\ save
|
|
\ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
|
|
2008/06/03\ *\ eat\ &\ shop
|
|
\ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ expenses:supplies\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
|
|
2008/12/31\ *\ pay\ off
|
|
\ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The print command displays full transactions from the journal file,
|
|
tidily formatted and showing all amounts explicitly.
|
|
The output of print is always a valid hledger journal, but it does
|
|
always not preserve all original content exactly (eg directives).
|
|
.PP
|
|
hledger\[aq]s print command also shows all unit prices in effect, or
|
|
(with \-B/\-\-cost) shows cost amounts.
|
|
.PP
|
|
The print command also supports output destination and CSV output.
|
|
.SS register
|
|
.PP
|
|
Show postings and their running total.
|
|
Alias: reg.
|
|
.TP
|
|
.B \f[C]\-H\ \-\-historical\f[]
|
|
include prior postings in the running total
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-A\ \-\-average\f[]
|
|
show a running average instead of the running total (implies \-\-empty)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-r\ \-\-related\f[]
|
|
show postings\[aq] siblings instead
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-w\ N\ \-\-width=N\f[]
|
|
set output width (default: terminal width or COLUMNS.
|
|
\-wN,M sets description width as well)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
|
|
write output to FILE instead of stdout.
|
|
A recognised FMT suffix influences the format.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
|
|
select the output format.
|
|
Supported formats: txt, csv.
|
|
.RS
|
|
.RE
|
|
.PP
|
|
The register command displays postings, one per line, and their running
|
|
total.
|
|
This is typically used with a query selecting a particular account, to
|
|
see that account\[aq]s activity:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ register\ checking
|
|
2008/01/01\ income\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
2008/06/01\ gift\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $2
|
|
2008/06/02\ save\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
2008/12/31\ pay\ off\ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The \f[C]\-\-historical\f[]/\f[C]\-H\f[] 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:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ 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
|
|
2008/12/31\ pay\ off\ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The \f[C]\-\-depth\f[] option limits the amount of sub\-account detail
|
|
displayed.
|
|
.PP
|
|
The \f[C]\-\-average\f[]/\f[C]\-A\f[] flag shows the running average
|
|
posting amount instead of the running total (so, the final number
|
|
displayed is the average for the whole report period).
|
|
This flag implies \f[C]\-\-empty\f[] (see below).
|
|
It works best when showing just one account and one commodity.
|
|
.PP
|
|
The \f[C]\-\-related\f[]/\f[C]\-r\f[] flag shows the \f[I]other\f[]
|
|
postings in the transactions of the postings which would normally be
|
|
shown.
|
|
.PP
|
|
With a reporting interval, register shows summary postings, one per
|
|
interval, aggregating the postings to each account:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ register\ \-\-monthly\ income
|
|
2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Periods with no activity, and summary postings with a zero amount, are
|
|
not shown by default; use the \f[C]\-\-empty\f[]/\f[C]\-E\f[] flag to
|
|
see them:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ register\ \-\-monthly\ income\ \-E
|
|
2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/02\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/03\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/04\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/05\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/07\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/08\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/09\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/10\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/11\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
2008/12\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Often, you\[aq]ll want to see just one line per interval.
|
|
The \f[C]\-\-depth\f[] option helps with this, causing subaccounts to be
|
|
aggregated:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ register\ \-\-monthly\ assets\ \-\-depth\ 1h
|
|
2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
2008/12\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Note when using report intervals, if you specify start/end dates these
|
|
will be adjusted outward if necessary to contain a whole number of
|
|
intervals.
|
|
This ensures that the first and last intervals are full length and
|
|
comparable to the others in the report.
|
|
.SS Custom register output
|
|
.PP
|
|
register uses the full terminal width by default, except on windows.
|
|
You can override this by setting the \f[C]COLUMNS\f[] environment
|
|
variable (not a bash shell variable) or by using the
|
|
\f[C]\-\-width\f[]/\f[C]\-w\f[] option.
|
|
.PP
|
|
The description and account columns normally share the space equally
|
|
(about half of (width \- 40) each).
|
|
You can adjust this by adding a description width as part of
|
|
\-\-width\[aq]s argument, comma\-separated: \f[C]\-\-width\ W,D\f[] .
|
|
Here\[aq]s a diagram:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
<\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\ width\ (W)\ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
|
|
date\ (10)\ \ description\ (D)\ \ \ \ \ \ \ account\ (W\-41\-D)\ \ \ \ \ amount\ (12)\ \ \ balance\ (12)
|
|
DDDDDDDDDD\ dddddddddddddddddddd\ \ aaaaaaaaaaaaaaaaaaa\ \ AAAAAAAAAAAA\ \ AAAAAAAAAAAA
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
and some examples:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ 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
|
|
$\ export\ COLUMNS=100;\ hledger\ reg\ #\ set\ till\ session\ end\ (or\ window\ resize)
|
|
$\ hledger\ reg\ \-w\ 100,40\ \ \ \ \ \ \ \ \ \ \ #\ set\ overall\ width\ 100,\ description\ width\ 40
|
|
$\ hledger\ reg\ \-w\ $COLUMNS,40\ \ \ \ \ \ #\ use\ terminal\ width,\ and\ set\ description\ width
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The register command also supports the \f[C]\-o/\-\-output\-file\f[] and
|
|
\f[C]\-O/\-\-output\-format\f[] options for controlling output
|
|
destination and CSV output.
|
|
.SS stats
|
|
.PP
|
|
Show some journal statistics.
|
|
.TP
|
|
.B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
|
|
write output to FILE instead of stdout.
|
|
A recognised FMT suffix influences the format.
|
|
.RS
|
|
.RE
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ stats
|
|
Main\ journal\ file\ \ \ \ \ \ \ \ :\ /src/hledger/data/sample.journal
|
|
Included\ journal\ files\ \ \ :\
|
|
Transactions\ span\ \ \ \ \ \ \ \ :\ 2008\-01\-01\ to\ 2009\-01\-01\ (366\ days)
|
|
Last\ transaction\ \ \ \ \ \ \ \ \ :\ 2008\-12\-31\ (2333\ days\ ago)
|
|
Transactions\ \ \ \ \ \ \ \ \ \ \ \ \ :\ 5\ (0.0\ per\ day)
|
|
Transactions\ last\ 30\ days:\ 0\ (0.0\ per\ day)
|
|
Transactions\ last\ 7\ days\ :\ 0\ (0.0\ per\ day)
|
|
Payees/descriptions\ \ \ \ \ \ :\ 5
|
|
Accounts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ 8\ (depth\ 3)
|
|
Commodities\ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ 1\ ($)
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The stats command displays summary information for the whole journal, or
|
|
a matched part of it.
|
|
With a reporting interval, it shows a report for each report period.
|
|
.PP
|
|
The stats command also supports \f[C]\-o/\-\-output\-file\f[] for
|
|
controlling output destination.
|
|
.SS test
|
|
.PP
|
|
Run built\-in unit tests.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ test
|
|
Cases:\ 74\ \ Tried:\ 74\ \ Errors:\ 0\ \ Failures:\ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
This command runs hledger\[aq]s built\-in unit tests and displays a
|
|
quick report.
|
|
With a regular expression argument, it selects only tests with matching
|
|
names.
|
|
It\[aq]s mainly used in development, but it\[aq]s also nice to be able
|
|
to check your hledger executable for smoke at any time.
|
|
.SH ADD\-ON COMMANDS
|
|
.PP
|
|
Add\-on commands are executables in your PATH whose name starts with
|
|
\f[C]hledger\-\f[] and ends with any of these file extensions: none,
|
|
\f[C]\&.hs\f[],\f[C]\&.lhs\f[],\f[C]\&.pl\f[],\f[C]\&.py\f[],\f[C]\&.rb\f[],\f[C]\&.rkt\f[],\f[C]\&.sh\f[],\f[C]\&.bat\f[],\f[C]\&.com\f[],\f[C]\&.exe\f[].
|
|
Also, an add\-on\[aq]s name may not be the same as any built\-in command
|
|
or alias.
|
|
.PP
|
|
hledger will detect these and include them in the command list and let
|
|
you invoke them with \f[C]hledger\ ADDONCMD\f[].
|
|
However there are some limitations:
|
|
.IP \[bu] 2
|
|
Options appearing before ADDONCMD will be visible only to hledger and
|
|
will not be passed to the add\-on.
|
|
Eg: \f[C]hledger\ \-h\ web\f[] shows hledger\[aq]s usage,
|
|
\f[C]hledger\ web\ \-h\f[] shows hledger\-web\[aq]s usage.
|
|
.IP \[bu] 2
|
|
Options understood only by the add\-on must go after a \f[C]\-\-\f[]
|
|
argument to hide them from hledger, which would otherwise reject them.
|
|
Eg: \f[C]hledger\ web\ \-\-\ \-\-server\f[].
|
|
.PP
|
|
Sometimes it may be more convenient to just run the add\-on directly,
|
|
eg: \f[C]hledger\-web\ \-\-server\f[].
|
|
.PP
|
|
Add\-ons which are written in haskell can take advantage of the
|
|
hledger\-lib library for journal parsing, reporting, command\-line
|
|
options, etc.
|
|
.PP
|
|
Here are some hledger add\-ons available from Hackage, the extra
|
|
directory in the hledger source, or elsewhere:
|
|
.SS api
|
|
.PP
|
|
Web API server, see hledger\-api.
|
|
.SS autosync
|
|
.PP
|
|
Download OFX bank data and/or convert OFX to hledger journal format.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ autosync\ \-\-help
|
|
usage:\ hledger\-autosync\ [\-h]\ [\-m\ MAX]\ [\-r]\ [\-a\ ACCOUNT]\ [\-l\ LEDGER]\ [\-i\ INDENT]
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-\-initial]\ [\-\-fid\ FID]\ [\-\-assertions]\ [\-d]\ [\-\-hledger]
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-\-slow]\ [\-\-which]
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [PATH]
|
|
|
|
Synchronize\ ledger.
|
|
|
|
positional\ arguments:
|
|
\ \ PATH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ do\ not\ sync;\ import\ from\ OFX\ file
|
|
|
|
optional\ arguments:
|
|
\ \ \-h,\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ show\ this\ help\ message\ and\ exit
|
|
\ \ \-m\ MAX,\ \-\-max\ MAX\ \ \ \ \ maximum\ number\ of\ days\ to\ process
|
|
\ \ \-r,\ \-\-resync\ \ \ \ \ \ \ \ \ \ do\ not\ stop\ until\ max\ days\ reached
|
|
\ \ \-a\ ACCOUNT,\ \-\-account\ ACCOUNT
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ account\ name\ for\ import
|
|
\ \ \-l\ LEDGER,\ \-\-ledger\ LEDGER
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ specify\ ledger\ file\ to\ READ\ for\ syncing
|
|
\ \ \-i\ INDENT,\ \-\-indent\ INDENT
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ number\ of\ spaces\ to\ use\ for\ indentation
|
|
\ \ \-\-initial\ \ \ \ \ \ \ \ \ \ \ \ \ create\ initial\ balance\ entries
|
|
\ \ \-\-fid\ FID\ \ \ \ \ \ \ \ \ \ \ \ \ pass\ in\ fid\ value\ for\ OFX\ files\ that\ do\ not\ supply\ it
|
|
\ \ \-\-assertions\ \ \ \ \ \ \ \ \ \ create\ balance\ assertion\ entries
|
|
\ \ \-d,\ \-\-debug\ \ \ \ \ \ \ \ \ \ \ enable\ debug\ logging
|
|
\ \ \-\-hledger\ \ \ \ \ \ \ \ \ \ \ \ \ force\ use\ of\ hledger\ (on\ by\ default\ if\ invoked\ as\ hledger\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ autosync)
|
|
\ \ \-\-slow\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ use\ slow,\ but\ possibly\ more\ robust,\ method\ of\ calling\ ledger
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (no\ subprocess)
|
|
\ \ \-\-which\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ display\ which\ version\ of\ ledger/hledger/ledger\-python\ will
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ be\ used\ by\ ledger\-autosync\ to\ check\ for\ previous
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ transactions
|
|
$\ head\ acct1.ofx
|
|
OFXHEADER:100
|
|
DATA:OFXSGML
|
|
VERSION:102
|
|
SECURITY:NONE
|
|
ENCODING:USASCII
|
|
CHARSET:1252
|
|
COMPRESSION:NONE
|
|
OLDFILEUID:NONE
|
|
NEWFILEUIDe:8509488b59d1bb45
|
|
|
|
$\ hledger\ autosync\ acct1.ofx
|
|
2013/08/30\ MONTHLY\ SERVICE\ FEE
|
|
\ \ \ \ ;\ ofxid:\ 3000.4303001832.201308301
|
|
\ \ \ \ WF:4303001832\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-$6.00
|
|
\ \ \ \ [assets:business:bank:wf:bchecking:banking]\ \ $6.00
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
ledger\-autosync, which includes a \f[C]hledger\-autosync\f[] alias,
|
|
downloads transactions from your bank(s) via OFX, and prints just the
|
|
new ones as journal entries which you can add to your journal.
|
|
It can also operate on .OFX files which you\[aq]ve downloaded manually.
|
|
It can be a nice alternative to hledger\[aq]s built\-in CSV reader,
|
|
especially if your bank supports OFX download.
|
|
.SS diff
|
|
.PP
|
|
Show transactions present in one journal file but not another
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ diff\ \-\-help
|
|
Usage:\ hledger\-diff\ account:name\ left.journal\ right.journal
|
|
$\ cat\ a.journal
|
|
1/1
|
|
\ (acct:one)\ \ 1
|
|
|
|
$\ cat\ b.journal
|
|
1/1
|
|
\ (acct:one)\ \ 1
|
|
2/2
|
|
\ (acct:two)\ \ 2
|
|
|
|
$\ hledger\ diff\ acct:two\ a.journal\ b.journal
|
|
Unmatched\ transactions\ in\ the\ first\ journal:
|
|
|
|
Unmatched\ transactions\ in\ the\ second\ journal:
|
|
|
|
2015/02/02
|
|
\ \ \ \ (acct:two)\ \ \ \ \ \ \ \ \ \ \ \ $2
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
hledger\-diff compares two journal files.
|
|
Given an account name, it prints out the transactions affecting that
|
|
account which are in one journal file but not in the other.
|
|
This can be useful for reconciling existing journals with bank
|
|
statements.
|
|
.SS equity
|
|
.PP
|
|
Print a journal entry that resets account balances to zero.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ balance\ \-\-flat\ \-E\ assets\ liabilities
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ assets:bank:checking
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ assets:bank:saving
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ assets:cash
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
|
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
$\ hledger\ equity\ assets\ liabilities
|
|
2015/05/23
|
|
\ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
\ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2
|
|
\ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
|
|
\ \ \ \ equity:closing\ balances\ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
|
|
2015/05/23
|
|
\ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
|
|
\ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
|
|
\ \ \ \ equity:opening\ balances\ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
This prints a journal entry which zeroes out the specified accounts (or
|
|
all accounts) with a transfer to/from "equity:closing balances" (like
|
|
Ledger\[aq]s equity command).
|
|
Also, it prints an similar entry with opposite sign for restoring the
|
|
balances from "equity:opening balances".
|
|
.PP
|
|
These can be useful for ending one journal file and starting a new one,
|
|
respectively.
|
|
By zeroing your asset and liability accounts at the end of a file and
|
|
restoring them at the start of the next one, you will see correct
|
|
asset/liability balances whether you run hledger on just one file, or on
|
|
several files concatenated with include.
|
|
.SS interest
|
|
.PP
|
|
Generate interest transactions.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ interest\ \-\-help
|
|
Usage:\ hledger\-interest\ [OPTION...]\ ACCOUNT
|
|
\ \ \-h\ \ \ \ \ \ \ \ \ \ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ print\ this\ message\ and\ exit
|
|
\ \ \-V\ \ \ \ \ \ \ \ \ \ \-\-version\ \ \ \ \ \ \ \ \ show\ version\ number\ and\ exit
|
|
\ \ \-v\ \ \ \ \ \ \ \ \ \ \-\-verbose\ \ \ \ \ \ \ \ \ echo\ input\ ledger\ to\ stdout\ (default)
|
|
\ \ \-q\ \ \ \ \ \ \ \ \ \ \-\-quiet\ \ \ \ \ \ \ \ \ \ \ don\[aq]t\ echo\ input\ ledger\ to\ stdout
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-today\ \ \ \ \ \ \ \ \ \ \ compute\ interest\ up\ until\ today
|
|
\ \ \-f\ FILE\ \ \ \ \ \-\-file=FILE\ \ \ \ \ \ \ input\ ledger\ file\ (pass\ \[aq]\-\[aq]\ for\ stdin)
|
|
\ \ \-s\ ACCOUNT\ \ \-\-source=ACCOUNT\ \ interest\ source\ account
|
|
\ \ \-t\ ACCOUNT\ \ \-\-target=ACCOUNT\ \ interest\ target\ account
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-act\ \ \ \ \ \ \ \ \ \ \ \ \ use\ \[aq]act\[aq]\ day\ counting\ convention
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30\-360\ \ \ \ \ \ \ \ \ \ use\ \[aq]30/360\[aq]\ day\ counting\ convention
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30E\-360\ \ \ \ \ \ \ \ \ use\ \[aq]30E/360\[aq]\ day\ counting\ convention
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30E\-360isda\ \ \ \ \ use\ \[aq]30E/360isda\[aq]\ day\ counting\ convention
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-constant=RATE\ \ \ constant\ interest\ rate
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-annual=RATE\ \ \ \ \ annual\ interest\ rate
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-bgb288\ \ \ \ \ \ \ \ \ \ compute\ interest\ according\ to\ German\ BGB288
|
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-ing\-diba\ \ \ \ \ \ \ \ compute\ interest\ according\ for\ Ing\-Diba\ Tagesgeld\ account
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ cat\ interest.journal
|
|
2008/09/26\ Loan
|
|
\ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ 10000.00
|
|
\ \ \ \ \ Liabilities:Bank
|
|
|
|
2008/11/27\ Payment
|
|
\ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-3771.12
|
|
\ \ \ \ \ Liabilities:Bank
|
|
|
|
2009/05/03\ Payment
|
|
\ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-1200.00
|
|
\ \ \ \ \ Liabilities:Bank
|
|
|
|
2010/12/10\ Payment
|
|
\ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-3700.00
|
|
\ \ \ \ \ Liabilities:Bank
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ interest\ \-\-\ \-f\ interest.journal\ \-\-source=Expenses:Interest\ \\
|
|
\ \ \ \ \-\-target=Liabilities:Bank\ \-\-30\-360\ \-\-annual=0.05\ Liabilities:Bank
|
|
2008/09/26\ Loan
|
|
\ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ 10000.00
|
|
\ \ \ \ Liabilities:Bank\ \ EUR\ \-10000.00
|
|
|
|
2008/11/27\ 0.05%\ interest\ for\ EUR\ \-10000.00\ over\ 61\ days
|
|
\ \ \ \ Liabilities:Bank\ \ \ \ \ EUR\ \-84.72
|
|
\ \ \ \ Expenses:Interest\ \ \ \ \ EUR\ 84.72
|
|
|
|
2008/11/27\ Payment
|
|
\ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-3771.12
|
|
\ \ \ \ Liabilities:Bank\ \ \ EUR\ 3771.12
|
|
|
|
2008/12/31\ 0.05%\ interest\ for\ EUR\ \-6313.60\ over\ 34\ days
|
|
\ \ \ \ Liabilities:Bank\ \ \ \ \ EUR\ \-29.81
|
|
\ \ \ \ Expenses:Interest\ \ \ \ \ EUR\ 29.81
|
|
|
|
2009/05/03\ 0.05%\ interest\ for\ EUR\ \-6343.42\ over\ 123\ days
|
|
\ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-108.37
|
|
\ \ \ \ Expenses:Interest\ \ \ \ EUR\ 108.37
|
|
|
|
2009/05/03\ Payment
|
|
\ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-1200.00
|
|
\ \ \ \ Liabilities:Bank\ \ \ EUR\ 1200.00
|
|
|
|
2009/12/31\ 0.05%\ interest\ for\ EUR\ \-5251.78\ over\ 238\ days
|
|
\ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-173.60
|
|
\ \ \ \ Expenses:Interest\ \ \ \ EUR\ 173.60
|
|
|
|
2010/12/10\ 0.05%\ interest\ for\ EUR\ \-5425.38\ over\ 340\ days
|
|
\ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-256.20
|
|
\ \ \ \ Expenses:Interest\ \ \ \ EUR\ 256.20
|
|
|
|
2010/12/10\ Payment
|
|
\ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-3700.00
|
|
\ \ \ \ Liabilities:Bank\ \ \ EUR\ 3700.00
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
hledger\-interest computes interests for a given account.
|
|
Using command line flags, the program can be configured to use various
|
|
schemes for day\-counting, such as act/act, 30/360, 30E/360, and
|
|
30/360isda.
|
|
Furthermore, it supports a (small) number of interest schemes, i.e.
|
|
annual interest with a fixed rate and the scheme mandated by the German
|
|
BGB288 (Basiszins für Verbrauchergeschäfte).
|
|
See the package page for more.
|
|
.SS irr
|
|
.PP
|
|
Calculate internal rate of return.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ irr\ \-\-help
|
|
Usage:\ hledger\-irr\ [OPTION...]
|
|
\ \ \-h\ \ \ \ \ \ \ \ \ \ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ print\ this\ message\ and\ exit
|
|
\ \ \-V\ \ \ \ \ \ \ \ \ \ \-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ show\ version\ number\ and\ exit
|
|
\ \ \-c\ \ \ \ \ \ \ \ \ \ \-\-cashflow\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ also\ show\ all\ revant\ transactions
|
|
\ \ \-f\ FILE\ \ \ \ \ \-\-file=FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ input\ ledger\ file\ (pass\ \[aq]\-\[aq]\ for\ stdin)
|
|
\ \ \-i\ ACCOUNT\ \ \-\-investment\-account=ACCOUNT\ \ investment\ account
|
|
\ \ \-t\ ACCOUNT\ \ \-\-interest\-account=ACCOUNT\ \ \ \ interest/gain/fees/losses\ account
|
|
\ \ \-b\ DATE\ \ \ \ \ \-\-begin=DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ from\ this\ date
|
|
\ \ \-e\ DATE\ \ \ \ \ \-\-end=DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ until\ this\ date
|
|
\ \ \-D\ \ \ \ \ \ \ \ \ \ \-\-daily\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ day
|
|
\ \ \-W\ \ \ \ \ \ \ \ \ \ \-\-weekly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ week
|
|
\ \ \-M\ \ \ \ \ \ \ \ \ \ \-\-monthly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ month
|
|
\ \ \-Y\ \ \ \ \ \ \ \ \ \ \-\-yearly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ year
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ cat\ irr.journal\
|
|
2011\-01\-01\ Some\ wild\ speculation\ \[en]\ I\ wonder\ if\ it\ pays\ off
|
|
\ \ \ Speculation\ \ \ €100.00
|
|
\ \ \ Cash
|
|
|
|
2011\-02\-01\ More\ speculation\ (and\ adjustment\ of\ value)
|
|
\ \ \ Cash\ \ \ \ \ \ \ \ \ \-€10.00
|
|
\ \ \ Rate\ Gain\ \ \ \ \ \-€1.00
|
|
\ \ \ Speculation
|
|
|
|
2011\-03\-01\ Lets\ pull\ out\ some\ money\ (and\ adjustment\ of\ value)
|
|
\ \ \ Cash\ \ \ \ \ \ \ \ \ \ €30.00
|
|
\ \ \ Rate\ Gain\ \ \ \ \ \-€3.00
|
|
\ \ \ Speculation
|
|
|
|
2011\-04\-01\ More\ speculation\ (and\ it\ lost\ some\ money!)
|
|
\ \ \ Cash\ \ \ \ \ \ \ \ \ \-€50.00
|
|
\ \ \ Rate\ Gain\ \ \ \ \ €\ 5.00
|
|
\ \ \ Speculation
|
|
|
|
2011\-05\-01\ Getting\ some\ money\ out\ (and\ adjustment\ of\ value)
|
|
\ \ \ Speculation\ \ \-€44.00
|
|
\ \ \ Rate\ Gain\ \ \ \ \-€\ 3.00
|
|
\ \ \ Cash
|
|
|
|
2011\-06\-01\ Emptying\ the\ account\ (after\ adjusting\ the\ value)
|
|
\ \ \ Speculation\ \ \ \-€85.00
|
|
\ \ \ Cash\ \ \ \ \ \ \ \ \ \ \ €90.00
|
|
\ \ \ Rate\ Gain\ \ \ \ \ \-€\ 5.00
|
|
\f[]
|
|
.fi
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\-irr\ \-f\ irr.journal\ \-t\ "Rate\ Gain"\ \-i\ Speculation\ \ \-\-monthly
|
|
2011/01/01\ \-\ 2011/02/01:\ 12.49%
|
|
2011/02/01\ \-\ 2011/03/01:\ 41.55%
|
|
2011/03/01\ \-\ 2011/04/01:\ \-51.44%
|
|
2011/04/01\ \-\ 2011/05/01:\ 32.24%
|
|
2011/05/01\ \-\ 2011/06/01:\ 95.92%
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
hledger\-irr computes the internal rate of return, also known as the
|
|
effective interest rate, of a given investment.
|
|
After specifying what account holds the investment, and what account
|
|
stores the gains (or losses, or fees, or cost), it calculates the
|
|
hypothetical annual rate of fixed rate investment that would have
|
|
provided the exact same cash flow.
|
|
See the package page for more.
|
|
.SS print\-unique
|
|
.PP
|
|
Print only only journal entries which have a unique description.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ cat\ unique.journal
|
|
1/1\ test
|
|
\ (acct:one)\ \ 1
|
|
2/2\ test
|
|
\ (acct:two)\ \ 2
|
|
$\ LEDGER_FILE=unique.journal\ hledger\ print\-unique
|
|
(\-f\ option\ not\ supported)
|
|
2015/01/01\ test
|
|
\ \ \ \ (acct:one)\ \ \ \ \ \ \ \ \ \ \ \ \ 1
|
|
\f[]
|
|
.fi
|
|
.SS rewrite
|
|
.PP
|
|
Prints all journal entries, adding specified custom postings to matched
|
|
entries.
|
|
.PP
|
|
hledger\-rewrite.hs, in hledger\[aq]s extra directory (compilation
|
|
optional), adds postings to existing transactions, optionally with an
|
|
amount based on the existing transaction\[aq]s first amount.
|
|
See the script for more details.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ hledger\ rewrite\ \-\-\ [QUERY]\ \ \ \ \ \ \ \ \-\-add\-posting\ "ACCT\ \ AMTEXPR"\ ...
|
|
$\ hledger\ rewrite\ \-\-\ ^income\ \ \ \ \ \ \ \ \-\-add\-posting\ \[aq](liabilities:tax)\ \ *.33\[aq]
|
|
$\ hledger\ rewrite\ \-\-\ expenses:gifts\ \-\-add\-posting\ \[aq](budget:gifts)\ \ *\-1"\[aq]
|
|
\f[]
|
|
.fi
|
|
.SS ui
|
|
.PP
|
|
Curses\-style interface, see hledger\-ui.
|
|
.SS web
|
|
.PP
|
|
Web interface, see hledger\-web.
|
|
.SH TROUBLESHOOTING
|
|
.SS Run\-time problems
|
|
.PP
|
|
Here are some issues you might encounter when you run hledger (and
|
|
remember you can also seek help from the IRC channel, mail list or bug
|
|
tracker):
|
|
.PP
|
|
\f[B]Successfully installed, but "No command \[aq]hledger\[aq]
|
|
found"\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
stack and cabal install binaries into a special directory, which should
|
|
be added to your PATH environment variable.
|
|
Eg on unix\-like systems, that is ~/.local/bin and ~/.cabal/bin
|
|
respectively.
|
|
.PP
|
|
\f[B]I set a custom LEDGER_FILE, but hledger is still using the default
|
|
file\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
\f[C]LEDGER_FILE\f[] should be a real environment variable, not just a
|
|
shell variable.
|
|
The command \f[C]env\ |\ grep\ LEDGER_FILE\f[] should show it.
|
|
You may need to use \f[C]export\f[].
|
|
Here\[aq]s an explanation.
|
|
.PP
|
|
\f[B]"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
|
|
character" errors\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
In order to handle non\-ascii letters and symbols (like £), hledger
|
|
needs an appropriate locale.
|
|
This is usually configured system\-wide; you can also configure it
|
|
temporarily.
|
|
The locale may need to be one that supports UTF\-8, if you built hledger
|
|
with GHC < 7.2 (or possibly always, I\[aq]m not sure yet).
|
|
.PP
|
|
Here\[aq]s an example of setting the locale temporarily, on ubuntu
|
|
gnu/linux:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ file\ my.journal
|
|
my.journal:\ UTF\-8\ Unicode\ text\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ the\ file\ is\ UTF8\-encoded
|
|
$\ locale\ \-a
|
|
C
|
|
en_US.utf8\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ a\ UTF8\-aware\ locale\ is\ available
|
|
POSIX
|
|
$\ LANG=en_US.utf8\ hledger\ \-f\ my.journal\ print\ \ \ #\ <\-\ use\ it\ for\ this\ command
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Here\[aq]s one way to set it permanently, there are probably better
|
|
ways:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ echo\ "export\ LANG=en_US.UTF\-8"\ >>~/.bash_profile
|
|
$\ bash\ \-\-login
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
If we preferred to use eg \f[C]fr_FR.utf8\f[], we might have to install
|
|
that first:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
$\ apt\-get\ install\ language\-pack\-fr
|
|
$\ locale\ \-a
|
|
C
|
|
en_US.utf8
|
|
fr_BE.utf8
|
|
fr_CA.utf8
|
|
fr_CH.utf8
|
|
fr_FR.utf8
|
|
fr_LU.utf8
|
|
POSIX
|
|
$\ LANG=fr_FR.utf8\ hledger\ \-f\ my.journal\ print
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Note some platforms allow variant locale spellings, but not all (ubuntu
|
|
accepts \f[C]fr_FR.UTF8\f[], mac osx requires exactly
|
|
\f[C]fr_FR.UTF\-8\f[]).
|
|
.SS Known limitations
|
|
.PP
|
|
\f[B]Command line interface\f[]
|
|
.PP
|
|
Add\-on command options, unless they are also understood by the main
|
|
hledger executable, must be written after \f[C]\-\-\f[], like this:
|
|
\f[C]hledger\ web\ \-\-\ \-\-server\f[]
|
|
.PP
|
|
\f[B]Differences from Ledger\f[]
|
|
.PP
|
|
Not all of Ledger\[aq]s journal file syntax is supported.
|
|
See file format differences.
|
|
.PP
|
|
hledger is slower than Ledger, and uses more memory, on large data
|
|
files.
|
|
.PP
|
|
\f[B]Windows limitations\f[]
|
|
.PP
|
|
In a windows CMD window, non\-ascii characters and colours are not
|
|
supported.
|
|
.PP
|
|
In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
|
|
hledger add.
|
|
.SH ENVIRONMENT
|
|
.PP
|
|
\f[B]LEDGER_FILE\f[] sets the default journal file path.
|
|
If not set, it is \f[C]~/.hledger.journal\f[].
|
|
.PP
|
|
\f[B]COLUMNS\f[] sets the default width used by the register command
|
|
(normally the full terminal width).
|
|
.SH FILES
|
|
.PP
|
|
Reads data from a hledger journal file (\f[C]$LEDGER_FILE\f[] or
|
|
\f[C]~/.hledger.journal\f[] by default), or a CSV file plus associated
|
|
CSV rules file.
|
|
.SH BUGS
|
|
.PP
|
|
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
|
is awkward.
|
|
.PP
|
|
hledger can\[aq]t render non\-ascii characters when run from a Windows
|
|
command prompt (up to Windows 7 at least).
|
|
.PP
|
|
When input data contains non\-ascii characters, a suitable system locale
|
|
must be configured (or there will be an unhelpful error).
|
|
Eg on POSIX, set LANG to something other than C.
|
|
|
|
|
|
.SH "REPORTING BUGS"
|
|
Report bugs at http://bugs.hledger.org
|
|
(or on the #hledger IRC channel or hledger mail list)
|
|
|
|
.SH AUTHORS
|
|
Simon Michael <simon@joyful.com> and contributors
|
|
|
|
.SH COPYRIGHT
|
|
|
|
Copyright (C) 2007-2016 Simon Michael.
|
|
.br
|
|
Released under GNU GPL v3 or later.
|
|
|
|
.SH SEE ALSO
|
|
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),
|
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
|
|
ledger(1)
|
|
|
|
http://hledger.org
|