;regen manuals
This commit is contained in:
parent
c1a985f1c8
commit
e44c1cfae8
@ -4,4 +4,4 @@ m4_dnl Program version. Updated by make setversion.
|
|||||||
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
||||||
m4_dnl
|
m4_dnl
|
||||||
m4_dnl Date to show in man pages. Updated by make setdate.
|
m4_dnl Date to show in man pages. Updated by make setdate.
|
||||||
m4_define({{_monthyear_}}, {{August 2020}})m4_dnl
|
m4_define({{_monthyear_}}, {{September 2020}})m4_dnl
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"t
|
||||||
|
|
||||||
.TH "hledger_csv" "5" "August 2020" "hledger 1.18.99" "hledger User Manuals"
|
.TH "hledger_csv" "5" "September 2020" "hledger 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -9,9 +9,10 @@
|
|||||||
CSV - how hledger reads CSV data, and the CSV rules file format
|
CSV - how hledger reads CSV data, and the CSV rules file format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger can read CSV (Comma Separated Value/Character Separated Value)
|
hledger can read CSV files (Character Separated Value - usually comma,
|
||||||
files as if they were journal files, automatically converting each CSV
|
semicolon, or tab) containing dated records as if they were journal
|
||||||
record into a transaction.
|
files, automatically converting each CSV record into a transaction.
|
||||||
|
.PP
|
||||||
(To learn about \f[I]writing\f[R] CSV, see CSV output.)
|
(To learn about \f[I]writing\f[R] CSV, see CSV output.)
|
||||||
.PP
|
.PP
|
||||||
We describe each CSV file\[aq]s format with a corresponding \f[I]rules
|
We describe each CSV file\[aq]s format with a corresponding \f[I]rules
|
||||||
@ -592,9 +593,19 @@ Interpolation strips outer whitespace (so a CSV value like
|
|||||||
See TIPS below for more about referencing other fields.
|
See TIPS below for more about referencing other fields.
|
||||||
.SS \f[C]separator\f[R]
|
.SS \f[C]separator\f[R]
|
||||||
.PP
|
.PP
|
||||||
You can use the \f[C]separator\f[R] directive to read other kinds of
|
You can use the \f[C]separator\f[R] rule to read other kinds of
|
||||||
character-separated data.
|
character-separated data.
|
||||||
Eg to read SSV (Semicolon Separated Values), use:
|
The argument is any single separator character, or the words
|
||||||
|
\f[C]tab\f[R] or \f[C]space\f[R] (case insensitive).
|
||||||
|
Eg, for comma-separated values (CSV):
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
separator ,
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
or for semicolon-separated values (SSV):
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -602,11 +613,7 @@ separator ;
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
The separator directive accepts exactly one single byte character as a
|
or for tab-separated values (TSV):
|
||||||
separator.
|
|
||||||
To specify whitespace characters, you may use the special words
|
|
||||||
\f[C]TAB\f[R] or \f[C]SPACE\f[R].
|
|
||||||
Eg to read TSV (Tab Separated Values), use:
|
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -614,7 +621,10 @@ separator TAB
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
See also: File Extension.
|
If the input file has a \f[C].csv\f[R], \f[C].ssv\f[R] or \f[C].tsv\f[R]
|
||||||
|
file extension (or a \f[C]csv:\f[R], \f[C]ssv:\f[R], \f[C]tsv:\f[R]
|
||||||
|
prefix), the appropriate separator will be inferred automatically, and
|
||||||
|
you won\[aq]t need this rule.
|
||||||
.SS \f[C]if\f[R] block
|
.SS \f[C]if\f[R] block
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
@ -964,14 +974,12 @@ they must be double quotes (not single quotes)
|
|||||||
spaces outside the quotes are not allowed
|
spaces outside the quotes are not allowed
|
||||||
.SS File Extension
|
.SS File Extension
|
||||||
.PP
|
.PP
|
||||||
CSV (\[dq]Character Separated Values\[dq]) files should be named with
|
To help hledger identify the format and show the right error messages,
|
||||||
one of these filename extensions: \f[C].csv\f[R], \f[C].ssv\f[R],
|
CSV/SSV/TSV files should normally be named with a \f[C].csv\f[R],
|
||||||
\f[C].tsv\f[R].
|
\f[C].ssv\f[R] or \f[C].tsv\f[R] filename extension.
|
||||||
Or, the file path should be prefixed with one of \f[C]csv:\f[R],
|
Or, the file path should be prefixed with \f[C]csv:\f[R], \f[C]ssv:\f[R]
|
||||||
\f[C]ssv:\f[R], \f[C]tsv:\f[R].
|
or \f[C]tsv:\f[R].
|
||||||
This helps hledger identify the format and show the right error
|
Eg:
|
||||||
messages.
|
|
||||||
For example:
|
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -987,7 +995,8 @@ $ cat foo | hledger -f ssv:- foo
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
More about this: Input files in the hledger manual.
|
You can override the file extension with a separator rule if needed.
|
||||||
|
See also: Input files in the hledger manual.
|
||||||
.SS Reading multiple CSV files
|
.SS Reading multiple CSV files
|
||||||
.PP
|
.PP
|
||||||
If you use multiple \f[C]-f\f[R] options to read multiple CSV files at
|
If you use multiple \f[C]-f\f[R] options to read multiple CSV files at
|
||||||
|
|||||||
@ -8,10 +8,12 @@ hledger_csv(5) hledger 1.18.99
|
|||||||
|
|
||||||
CSV - how hledger reads CSV data, and the CSV rules file format
|
CSV - how hledger reads CSV data, and the CSV rules file format
|
||||||
|
|
||||||
hledger can read CSV (Comma Separated Value/Character Separated
|
hledger can read CSV files (Character Separated Value - usually
|
||||||
Value) files as if they were journal files, automatically converting
|
comma, semicolon, or tab) containing dated records as if they were
|
||||||
each CSV record into a transaction. (To learn about _writing_ CSV, see
|
journal files, automatically converting each CSV record into a
|
||||||
CSV output.)
|
transaction.
|
||||||
|
|
||||||
|
(To learn about _writing_ CSV, see CSV output.)
|
||||||
|
|
||||||
We describe each CSV file's format with a corresponding _rules file_.
|
We describe each CSV file's format with a corresponding _rules file_.
|
||||||
By default this is named like the CSV file with a '.rules' extension
|
By default this is named like the CSV file with a '.rules' extension
|
||||||
@ -580,19 +582,24 @@ File: hledger_csv.info, Node: separator, Next: if block, Prev: field assignme
|
|||||||
2.4 'separator'
|
2.4 'separator'
|
||||||
===============
|
===============
|
||||||
|
|
||||||
You can use the 'separator' directive to read other kinds of
|
You can use the 'separator' rule to read other kinds of
|
||||||
character-separated data. Eg to read SSV (Semicolon Separated Values),
|
character-separated data. The argument is any single separator
|
||||||
use:
|
character, or the words 'tab' or 'space' (case insensitive). Eg, for
|
||||||
|
comma-separated values (CSV):
|
||||||
|
|
||||||
|
separator ,
|
||||||
|
|
||||||
|
or for semicolon-separated values (SSV):
|
||||||
|
|
||||||
separator ;
|
separator ;
|
||||||
|
|
||||||
The separator directive accepts exactly one single byte character as
|
or for tab-separated values (TSV):
|
||||||
a separator. To specify whitespace characters, you may use the special
|
|
||||||
words 'TAB' or 'SPACE'. Eg to read TSV (Tab Separated Values), use:
|
|
||||||
|
|
||||||
separator TAB
|
separator TAB
|
||||||
|
|
||||||
See also: File Extension.
|
If the input file has a '.csv', '.ssv' or '.tsv' file extension (or a
|
||||||
|
'csv:', 'ssv:', 'tsv:' prefix), the appropriate separator will be
|
||||||
|
inferred automatically, and you won't need this rule.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: if block, Next: if table, Prev: separator, Up: CSV RULES
|
File: hledger_csv.info, Node: if block, Next: if table, Prev: separator, Up: CSV RULES
|
||||||
@ -932,11 +939,10 @@ File: hledger_csv.info, Node: File Extension, Next: Reading multiple CSV files
|
|||||||
3.3 File Extension
|
3.3 File Extension
|
||||||
==================
|
==================
|
||||||
|
|
||||||
CSV ("Character Separated Values") files should be named with one of
|
To help hledger identify the format and show the right error messages,
|
||||||
these filename extensions: '.csv', '.ssv', '.tsv'. Or, the file path
|
CSV/SSV/TSV files should normally be named with a '.csv', '.ssv' or
|
||||||
should be prefixed with one of 'csv:', 'ssv:', 'tsv:'. This helps
|
'.tsv' filename extension. Or, the file path should be prefixed with
|
||||||
hledger identify the format and show the right error messages. For
|
'csv:', 'ssv:' or 'tsv:'. Eg:
|
||||||
example:
|
|
||||||
|
|
||||||
$ hledger -f foo.ssv print
|
$ hledger -f foo.ssv print
|
||||||
|
|
||||||
@ -944,7 +950,8 @@ $ hledger -f foo.ssv print
|
|||||||
|
|
||||||
$ cat foo | hledger -f ssv:- foo
|
$ cat foo | hledger -f ssv:- foo
|
||||||
|
|
||||||
More about this: Input files in the hledger manual.
|
You can override the file extension with a separator rule if needed.
|
||||||
|
See also: Input files in the hledger manual.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: File Extension, Up: TIPS
|
File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: File Extension, Up: TIPS
|
||||||
@ -1143,84 +1150,84 @@ command the user specified.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: EXAMPLES2636
|
Node: EXAMPLES2677
|
||||||
Ref: #examples2742
|
Ref: #examples2783
|
||||||
Node: Basic2950
|
Node: Basic2991
|
||||||
Ref: #basic3050
|
Ref: #basic3091
|
||||||
Node: Bank of Ireland3592
|
Node: Bank of Ireland3633
|
||||||
Ref: #bank-of-ireland3727
|
Ref: #bank-of-ireland3768
|
||||||
Node: Amazon5189
|
Node: Amazon5230
|
||||||
Ref: #amazon5307
|
Ref: #amazon5348
|
||||||
Node: Paypal7026
|
Node: Paypal7067
|
||||||
Ref: #paypal7120
|
Ref: #paypal7161
|
||||||
Node: CSV RULES14764
|
Node: CSV RULES14805
|
||||||
Ref: #csv-rules14873
|
Ref: #csv-rules14914
|
||||||
Node: skip15168
|
Node: skip15209
|
||||||
Ref: #skip15261
|
Ref: #skip15302
|
||||||
Node: fields15636
|
Node: fields15677
|
||||||
Ref: #fields15758
|
Ref: #fields15799
|
||||||
Node: Transaction field names16923
|
Node: Transaction field names16964
|
||||||
Ref: #transaction-field-names17083
|
Ref: #transaction-field-names17124
|
||||||
Node: Posting field names17194
|
Node: Posting field names17235
|
||||||
Ref: #posting-field-names17346
|
Ref: #posting-field-names17387
|
||||||
Node: account17416
|
Node: account17457
|
||||||
Ref: #account17532
|
Ref: #account17573
|
||||||
Node: amount18069
|
Node: amount18110
|
||||||
Ref: #amount18200
|
Ref: #amount18241
|
||||||
Node: currency19307
|
Node: currency19348
|
||||||
Ref: #currency19442
|
Ref: #currency19483
|
||||||
Node: balance19648
|
Node: balance19689
|
||||||
Ref: #balance19782
|
Ref: #balance19823
|
||||||
Node: comment20099
|
Node: comment20140
|
||||||
Ref: #comment20216
|
Ref: #comment20257
|
||||||
Node: field assignment20379
|
Node: field assignment20420
|
||||||
Ref: #field-assignment20522
|
Ref: #field-assignment20563
|
||||||
Node: separator21340
|
Node: separator21381
|
||||||
Ref: #separator21475
|
Ref: #separator21516
|
||||||
Node: if block21886
|
Node: if block22056
|
||||||
Ref: #if-block22011
|
Ref: #if-block22181
|
||||||
Node: Matching the whole record22412
|
Node: Matching the whole record22582
|
||||||
Ref: #matching-the-whole-record22587
|
Ref: #matching-the-whole-record22757
|
||||||
Node: Matching individual fields23391
|
Node: Matching individual fields23561
|
||||||
Ref: #matching-individual-fields23595
|
Ref: #matching-individual-fields23765
|
||||||
Node: Combining matchers23819
|
Node: Combining matchers23989
|
||||||
Ref: #combining-matchers24015
|
Ref: #combining-matchers24185
|
||||||
Node: Rules applied on successful match24328
|
Node: Rules applied on successful match24498
|
||||||
Ref: #rules-applied-on-successful-match24519
|
Ref: #rules-applied-on-successful-match24689
|
||||||
Node: if table25173
|
Node: if table25343
|
||||||
Ref: #if-table25292
|
Ref: #if-table25462
|
||||||
Node: end27030
|
Node: end27200
|
||||||
Ref: #end27142
|
Ref: #end27312
|
||||||
Node: date-format27366
|
Node: date-format27536
|
||||||
Ref: #date-format27498
|
Ref: #date-format27668
|
||||||
Node: newest-first28247
|
Node: newest-first28417
|
||||||
Ref: #newest-first28385
|
Ref: #newest-first28555
|
||||||
Node: include29068
|
Node: include29238
|
||||||
Ref: #include29199
|
Ref: #include29369
|
||||||
Node: balance-type29643
|
Node: balance-type29813
|
||||||
Ref: #balance-type29763
|
Ref: #balance-type29933
|
||||||
Node: TIPS30463
|
Node: TIPS30633
|
||||||
Ref: #tips30545
|
Ref: #tips30715
|
||||||
Node: Rapid feedback30801
|
Node: Rapid feedback30971
|
||||||
Ref: #rapid-feedback30918
|
Ref: #rapid-feedback31088
|
||||||
Node: Valid CSV31378
|
Node: Valid CSV31548
|
||||||
Ref: #valid-csv31508
|
Ref: #valid-csv31678
|
||||||
Node: File Extension31700
|
Node: File Extension31870
|
||||||
Ref: #file-extension31852
|
Ref: #file-extension32022
|
||||||
Node: Reading multiple CSV files32262
|
Node: Reading multiple CSV files32451
|
||||||
Ref: #reading-multiple-csv-files32447
|
Ref: #reading-multiple-csv-files32636
|
||||||
Node: Valid transactions32688
|
Node: Valid transactions32877
|
||||||
Ref: #valid-transactions32866
|
Ref: #valid-transactions33055
|
||||||
Node: Deduplicating importing33494
|
Node: Deduplicating importing33683
|
||||||
Ref: #deduplicating-importing33673
|
Ref: #deduplicating-importing33862
|
||||||
Node: Setting amounts34706
|
Node: Setting amounts34895
|
||||||
Ref: #setting-amounts34875
|
Ref: #setting-amounts35064
|
||||||
Node: Setting currency/commodity35862
|
Node: Setting currency/commodity36051
|
||||||
Ref: #setting-currencycommodity36054
|
Ref: #setting-currencycommodity36243
|
||||||
Node: Referencing other fields36857
|
Node: Referencing other fields37046
|
||||||
Ref: #referencing-other-fields37057
|
Ref: #referencing-other-fields37246
|
||||||
Node: How CSV rules are evaluated37954
|
Node: How CSV rules are evaluated38143
|
||||||
Ref: #how-csv-rules-are-evaluated38127
|
Ref: #how-csv-rules-are-evaluated38316
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|
||||||
|
|||||||
@ -7,19 +7,20 @@ NAME
|
|||||||
CSV - how hledger reads CSV data, and the CSV rules file format
|
CSV - how hledger reads CSV data, and the CSV rules file format
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
hledger can read CSV (Comma Separated Value/Character Separated Value)
|
hledger can read CSV files (Character Separated Value - usually comma,
|
||||||
files as if they were journal files, automatically converting each CSV
|
semicolon, or tab) containing dated records as if they were journal
|
||||||
record into a transaction. (To learn about writing CSV, see CSV out-
|
files, automatically converting each CSV record into a transaction.
|
||||||
put.)
|
|
||||||
|
(To learn about writing CSV, see CSV output.)
|
||||||
|
|
||||||
We describe each CSV file's format with a corresponding rules file. By
|
We describe each CSV file's format with a corresponding rules file. By
|
||||||
default this is named like the CSV file with a .rules extension added.
|
default this is named like the CSV file with a .rules extension added.
|
||||||
Eg when reading FILE.csv, hledger also looks for FILE.csv.rules in the
|
Eg when reading FILE.csv, hledger also looks for FILE.csv.rules in the
|
||||||
same directory as FILE.csv. You can specify a different rules file
|
same directory as FILE.csv. You can specify a different rules file
|
||||||
with the --rules-file option. If a rules file is not found, hledger
|
with the --rules-file option. If a rules file is not found, hledger
|
||||||
will create a sample rules file, which you'll need to adjust.
|
will create a sample rules file, which you'll need to adjust.
|
||||||
|
|
||||||
This file contains rules describing the CSV data (header line, fields
|
This file contains rules describing the CSV data (header line, fields
|
||||||
layout, date format etc.), and how to construct hledger journal entries
|
layout, date format etc.), and how to construct hledger journal entries
|
||||||
(transactions) from it. Often there will also be a list of conditional
|
(transactions) from it. Often there will also be a list of conditional
|
||||||
rules for categorising transactions based on their descriptions.
|
rules for categorising transactions based on their descriptions.
|
||||||
@ -28,36 +29,36 @@ DESCRIPTION
|
|||||||
|
|
||||||
skip skip one or more header lines or matched
|
skip skip one or more header lines or matched
|
||||||
CSV records
|
CSV records
|
||||||
fields name CSV fields, assign them to hledger
|
fields name CSV fields, assign them to hledger
|
||||||
fields
|
fields
|
||||||
field assignment assign a value to one hledger field,
|
field assignment assign a value to one hledger field,
|
||||||
with interpolation
|
with interpolation
|
||||||
separator a custom field separator
|
separator a custom field separator
|
||||||
if block apply some rules to CSV records matched
|
if block apply some rules to CSV records matched
|
||||||
by patterns
|
by patterns
|
||||||
if table apply some rules to CSV records matched
|
if table apply some rules to CSV records matched
|
||||||
by patterns, alternate syntax
|
by patterns, alternate syntax
|
||||||
end skip the remaining CSV records
|
end skip the remaining CSV records
|
||||||
date-format describe the format of CSV dates
|
date-format describe the format of CSV dates
|
||||||
newest-first disambiguate record order when there's
|
newest-first disambiguate record order when there's
|
||||||
only one date
|
only one date
|
||||||
include inline another CSV rules file
|
include inline another CSV rules file
|
||||||
balance-type choose which type of balance assignments
|
balance-type choose which type of balance assignments
|
||||||
to use
|
to use
|
||||||
|
|
||||||
Note, for best error messages when reading CSV files, use a .csv, .tsv
|
Note, for best error messages when reading CSV files, use a .csv, .tsv
|
||||||
or .ssv file extension or file prefix - see File Extension below.
|
or .ssv file extension or file prefix - see File Extension below.
|
||||||
|
|
||||||
There's an introductory Convert CSV files tutorial on hledger.org.
|
There's an introductory Convert CSV files tutorial on hledger.org.
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
Here are some sample hledger CSV rules files. See also the full col-
|
Here are some sample hledger CSV rules files. See also the full col-
|
||||||
lection at:
|
lection at:
|
||||||
https://github.com/simonmichael/hledger/tree/master/examples/csv
|
https://github.com/simonmichael/hledger/tree/master/examples/csv
|
||||||
|
|
||||||
Basic
|
Basic
|
||||||
At minimum, the rules file must identify the date and amount fields,
|
At minimum, the rules file must identify the date and amount fields,
|
||||||
and often it also specifies the date format and how many header lines
|
and often it also specifies the date format and how many header lines
|
||||||
there are. Here's a simple CSV file and a rules file for it:
|
there are. Here's a simple CSV file and a rules file for it:
|
||||||
|
|
||||||
Date, Description, Id, Amount
|
Date, Description, Id, Amount
|
||||||
@ -76,8 +77,8 @@ EXAMPLES
|
|||||||
Default account names are chosen, since we didn't set them.
|
Default account names are chosen, since we didn't set them.
|
||||||
|
|
||||||
Bank of Ireland
|
Bank of Ireland
|
||||||
Here's a CSV with two amount fields (Debit and Credit), and a balance
|
Here's a CSV with two amount fields (Debit and Credit), and a balance
|
||||||
field, which we can use to add balance assertions, which is not neces-
|
field, which we can use to add balance assertions, which is not neces-
|
||||||
sary but provides extra error checking:
|
sary but provides extra error checking:
|
||||||
|
|
||||||
Date,Details,Debit,Credit,Balance
|
Date,Details,Debit,Credit,Balance
|
||||||
@ -119,13 +120,13 @@ EXAMPLES
|
|||||||
assets:bank:boi:checking EUR-5.0 = EUR126.0
|
assets:bank:boi:checking EUR-5.0 = EUR126.0
|
||||||
expenses:unknown EUR5.0
|
expenses:unknown EUR5.0
|
||||||
|
|
||||||
The balance assertions don't raise an error above, because we're read-
|
The balance assertions don't raise an error above, because we're read-
|
||||||
ing directly from CSV, but they will be checked if these entries are
|
ing directly from CSV, but they will be checked if these entries are
|
||||||
imported into a journal file.
|
imported into a journal file.
|
||||||
|
|
||||||
Amazon
|
Amazon
|
||||||
Here we convert amazon.com order history, and use an if block to gener-
|
Here we convert amazon.com order history, and use an if block to gener-
|
||||||
ate a third posting if there's a fee. (In practice you'd probably get
|
ate a third posting if there's a fee. (In practice you'd probably get
|
||||||
this data from your bank instead, but it's an example.)
|
this data from your bank instead, but it's an example.)
|
||||||
|
|
||||||
"Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
|
"Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
|
||||||
@ -177,7 +178,7 @@ EXAMPLES
|
|||||||
expenses:fees $1.00
|
expenses:fees $1.00
|
||||||
|
|
||||||
Paypal
|
Paypal
|
||||||
Here's a real-world rules file for (customised) Paypal CSV, with some
|
Here's a real-world rules file for (customised) Paypal CSV, with some
|
||||||
Paypal-specific rules, and a second rules file included:
|
Paypal-specific rules, and a second rules file included:
|
||||||
|
|
||||||
"Date","Time","TimeZone","Name","Type","Status","Currency","Gross","Fee","Net","From Email Address","To Email Address","Transaction ID","Item Title","Item ID","Reference Txn ID","Receipt ID","Balance","Note"
|
"Date","Time","TimeZone","Name","Type","Status","Currency","Gross","Fee","Net","From Email Address","To Email Address","Transaction ID","Item Title","Item ID","Reference Txn ID","Receipt ID","Balance","Note"
|
||||||
@ -332,9 +333,9 @@ CSV RULES
|
|||||||
skip
|
skip
|
||||||
skip N
|
skip N
|
||||||
|
|
||||||
The word "skip" followed by a number (or no number, meaning 1) tells
|
The word "skip" followed by a number (or no number, meaning 1) tells
|
||||||
hledger to ignore this many non-empty lines preceding the CSV data.
|
hledger to ignore this many non-empty lines preceding the CSV data.
|
||||||
(Empty/blank lines are skipped automatically.) You'll need this when-
|
(Empty/blank lines are skipped automatically.) You'll need this when-
|
||||||
ever your CSV data contains header lines.
|
ever your CSV data contains header lines.
|
||||||
|
|
||||||
It also has a second purpose: it can be used inside if blocks to ignore
|
It also has a second purpose: it can be used inside if blocks to ignore
|
||||||
@ -343,27 +344,27 @@ CSV RULES
|
|||||||
fields
|
fields
|
||||||
fields FIELDNAME1, FIELDNAME2, ...
|
fields FIELDNAME1, FIELDNAME2, ...
|
||||||
|
|
||||||
A fields list (the word "fields" followed by comma-separated field
|
A fields list (the word "fields" followed by comma-separated field
|
||||||
names) is the quick way to assign CSV field values to hledger fields.
|
names) is the quick way to assign CSV field values to hledger fields.
|
||||||
It does two things:
|
It does two things:
|
||||||
|
|
||||||
1. it names the CSV fields. This is optional, but can be convenient
|
1. it names the CSV fields. This is optional, but can be convenient
|
||||||
later for interpolating them.
|
later for interpolating them.
|
||||||
|
|
||||||
2. when you use a standard hledger field name, it assigns the CSV value
|
2. when you use a standard hledger field name, it assigns the CSV value
|
||||||
to that part of the hledger transaction.
|
to that part of the hledger transaction.
|
||||||
|
|
||||||
Here's an example that says "use the 1st, 2nd and 4th fields as the
|
Here's an example that says "use the 1st, 2nd and 4th fields as the
|
||||||
transaction's date, description and amount; name the last two fields
|
transaction's date, description and amount; name the last two fields
|
||||||
for later reference; and ignore the others":
|
for later reference; and ignore the others":
|
||||||
|
|
||||||
fields date, description, , amount, , , somefield, anotherfield
|
fields date, description, , amount, , , somefield, anotherfield
|
||||||
|
|
||||||
Field names may not contain whitespace. Fields you don't care about
|
Field names may not contain whitespace. Fields you don't care about
|
||||||
can be left unnamed. Currently there must be least two items (there
|
can be left unnamed. Currently there must be least two items (there
|
||||||
must be at least one comma).
|
must be at least one comma).
|
||||||
|
|
||||||
Note, always use comma in the fields list, even if your CSV uses an-
|
Note, always use comma in the fields list, even if your CSV uses an-
|
||||||
other separator character.
|
other separator character.
|
||||||
|
|
||||||
Here are the standard hledger field/pseudo-field names. For more about
|
Here are the standard hledger field/pseudo-field names. For more about
|
||||||
@ -376,52 +377,52 @@ CSV RULES
|
|||||||
|
|
||||||
Posting field names
|
Posting field names
|
||||||
account
|
account
|
||||||
accountN, where N is 1 to 99, causes a posting to be generated, with
|
accountN, where N is 1 to 99, causes a posting to be generated, with
|
||||||
that account name.
|
that account name.
|
||||||
|
|
||||||
Most often there are two postings, so you'll want to set account1 and
|
Most often there are two postings, so you'll want to set account1 and
|
||||||
account2. Typically account1 is associated with the CSV file, and is
|
account2. Typically account1 is associated with the CSV file, and is
|
||||||
set once with a top-level assignment, while account2 is set based on
|
set once with a top-level assignment, while account2 is set based on
|
||||||
each transaction's description, and in conditional blocks.
|
each transaction's description, and in conditional blocks.
|
||||||
|
|
||||||
If a posting's account name is left unset but its amount is set (see
|
If a posting's account name is left unset but its amount is set (see
|
||||||
below), a default account name will be chosen (like "expenses:unknown"
|
below), a default account name will be chosen (like "expenses:unknown"
|
||||||
or "income:unknown").
|
or "income:unknown").
|
||||||
|
|
||||||
amount
|
amount
|
||||||
amountN sets posting N's amount. If the CSV uses separate fields for
|
amountN sets posting N's amount. If the CSV uses separate fields for
|
||||||
inflows and outflows, you can use amountN-in and amountN-out instead.
|
inflows and outflows, you can use amountN-in and amountN-out instead.
|
||||||
By assigning to amount1, amount2, ... etc. you can generate anywhere
|
By assigning to amount1, amount2, ... etc. you can generate anywhere
|
||||||
from 0 to 99 postings.
|
from 0 to 99 postings.
|
||||||
|
|
||||||
There is also an older, unnumbered form of these names, suitable for
|
There is also an older, unnumbered form of these names, suitable for
|
||||||
2-posting transactions, which sets both posting 1's and (negated) post-
|
2-posting transactions, which sets both posting 1's and (negated) post-
|
||||||
ing 2's amount: amount, or amount-in and amount-out. This is still
|
ing 2's amount: amount, or amount-in and amount-out. This is still
|
||||||
supported because it keeps pre-hledger-1.17 csv rules files working,
|
supported because it keeps pre-hledger-1.17 csv rules files working,
|
||||||
and because it can be more succinct, and because it converts posting
|
and because it can be more succinct, and because it converts posting
|
||||||
2's amount to cost if there's a transaction price, which can be useful.
|
2's amount to cost if there's a transaction price, which can be useful.
|
||||||
|
|
||||||
If you have an existing rules file using the unnumbered form, you might
|
If you have an existing rules file using the unnumbered form, you might
|
||||||
want to use the numbered form in certain conditional blocks, without
|
want to use the numbered form in certain conditional blocks, without
|
||||||
having to update and retest all the old rules. To facilitate this,
|
having to update and retest all the old rules. To facilitate this,
|
||||||
posting 1 ignores amount/amount-in/amount-out if any of
|
posting 1 ignores amount/amount-in/amount-out if any of
|
||||||
amount1/amount1-in/amount1-out are assigned, and posting 2 ignores them
|
amount1/amount1-in/amount1-out are assigned, and posting 2 ignores them
|
||||||
if any of amount2/amount2-in/amount2-out are assigned, avoiding con-
|
if any of amount2/amount2-in/amount2-out are assigned, avoiding con-
|
||||||
flicts.
|
flicts.
|
||||||
|
|
||||||
currency
|
currency
|
||||||
If the CSV has the currency symbol in a separate field (ie, not part of
|
If the CSV has the currency symbol in a separate field (ie, not part of
|
||||||
the amount field), you can use currencyN to prepend it to posting N's
|
the amount field), you can use currencyN to prepend it to posting N's
|
||||||
amount. Or, currency with no number affects all postings.
|
amount. Or, currency with no number affects all postings.
|
||||||
|
|
||||||
balance
|
balance
|
||||||
balanceN sets a balance assertion amount (or if the posting amount is
|
balanceN sets a balance assertion amount (or if the posting amount is
|
||||||
left empty, a balance assignment) on posting N.
|
left empty, a balance assignment) on posting N.
|
||||||
|
|
||||||
Also, for compatibility with hledger <1.17: balance with no number is
|
Also, for compatibility with hledger <1.17: balance with no number is
|
||||||
equivalent to balance1.
|
equivalent to balance1.
|
||||||
|
|
||||||
You can adjust the type of assertion/assignment with the balance-type
|
You can adjust the type of assertion/assignment with the balance-type
|
||||||
rule (see below).
|
rule (see below).
|
||||||
|
|
||||||
comment
|
comment
|
||||||
@ -433,11 +434,11 @@ CSV RULES
|
|||||||
field assignment
|
field assignment
|
||||||
HLEDGERFIELDNAME FIELDVALUE
|
HLEDGERFIELDNAME FIELDVALUE
|
||||||
|
|
||||||
Instead of or in addition to a fields list, you can use a "field as-
|
Instead of or in addition to a fields list, you can use a "field as-
|
||||||
signment" rule to set the value of a single hledger field, by writing
|
signment" rule to set the value of a single hledger field, by writing
|
||||||
its name (any of the standard hledger field names above) followed by a
|
its name (any of the standard hledger field names above) followed by a
|
||||||
text value. The value may contain interpolated CSV fields, referenced
|
text value. The value may contain interpolated CSV fields, referenced
|
||||||
by their 1-based position in the CSV record (%N), or by the name they
|
by their 1-based position in the CSV record (%N), or by the name they
|
||||||
were given in the fields list (%CSVFIELDNAME). Some examples:
|
were given in the fields list (%CSVFIELDNAME). Some examples:
|
||||||
|
|
||||||
# set the amount to the 4th CSV field, with " USD" appended
|
# set the amount to the 4th CSV field, with " USD" appended
|
||||||
@ -446,23 +447,29 @@ CSV RULES
|
|||||||
# combine three fields to make a comment, containing note: and date: tags
|
# combine three fields to make a comment, containing note: and date: tags
|
||||||
comment note: %somefield - %anotherfield, date: %1
|
comment note: %somefield - %anotherfield, date: %1
|
||||||
|
|
||||||
Interpolation strips outer whitespace (so a CSV value like " 1 " be-
|
Interpolation strips outer whitespace (so a CSV value like " 1 " be-
|
||||||
comes 1 when interpolated) (#1051). See TIPS below for more about ref-
|
comes 1 when interpolated) (#1051). See TIPS below for more about ref-
|
||||||
erencing other fields.
|
erencing other fields.
|
||||||
|
|
||||||
separator
|
separator
|
||||||
You can use the separator directive to read other kinds of character-
|
You can use the separator rule to read other kinds of character-sepa-
|
||||||
separated data. Eg to read SSV (Semicolon Separated Values), use:
|
rated data. The argument is any single separator character, or the
|
||||||
|
words tab or space (case insensitive). Eg, for comma-separated values
|
||||||
|
(CSV):
|
||||||
|
|
||||||
|
separator ,
|
||||||
|
|
||||||
|
or for semicolon-separated values (SSV):
|
||||||
|
|
||||||
separator ;
|
separator ;
|
||||||
|
|
||||||
The separator directive accepts exactly one single byte character as a
|
or for tab-separated values (TSV):
|
||||||
separator. To specify whitespace characters, you may use the special
|
|
||||||
words TAB or SPACE. Eg to read TSV (Tab Separated Values), use:
|
|
||||||
|
|
||||||
separator TAB
|
separator TAB
|
||||||
|
|
||||||
See also: File Extension.
|
If the input file has a .csv, .ssv or .tsv file extension (or a csv:,
|
||||||
|
ssv:, tsv: prefix), the appropriate separator will be inferred automat-
|
||||||
|
ically, and you won't need this rule.
|
||||||
|
|
||||||
if block
|
if block
|
||||||
if MATCHER
|
if MATCHER
|
||||||
@ -475,8 +482,8 @@ CSV RULES
|
|||||||
RULE
|
RULE
|
||||||
RULE
|
RULE
|
||||||
|
|
||||||
Conditional blocks ("if blocks") are a block of rules that are applied
|
Conditional blocks ("if blocks") are a block of rules that are applied
|
||||||
only to CSV records which match certain patterns. They are often used
|
only to CSV records which match certain patterns. They are often used
|
||||||
for customising account names based on transaction descriptions.
|
for customising account names based on transaction descriptions.
|
||||||
|
|
||||||
Matching the whole record
|
Matching the whole record
|
||||||
@ -484,16 +491,16 @@ CSV RULES
|
|||||||
|
|
||||||
REGEX
|
REGEX
|
||||||
|
|
||||||
REGEX is a case-insensitive regular expression which tries to match
|
REGEX is a case-insensitive regular expression which tries to match
|
||||||
anywhere within the CSV record. It is a POSIX ERE (extended regular
|
anywhere within the CSV record. It is a POSIX ERE (extended regular
|
||||||
expression) that also supports GNU word boundaries (\b, \B, \<, \>),
|
expression) that also supports GNU word boundaries (\b, \B, \<, \>),
|
||||||
and nothing else. If you have trouble, be sure to check our
|
and nothing else. If you have trouble, be sure to check our
|
||||||
https://hledger.org/hledger.html#regular-expressions doc.
|
https://hledger.org/hledger.html#regular-expressions doc.
|
||||||
|
|
||||||
Important note: the record that is matched is not the original record,
|
Important note: the record that is matched is not the original record,
|
||||||
but a synthetic one, with any enclosing double quotes (but not enclos-
|
but a synthetic one, with any enclosing double quotes (but not enclos-
|
||||||
ing whitespace) removed, and always comma-separated (which means that a
|
ing whitespace) removed, and always comma-separated (which means that a
|
||||||
field containing a comma will appear like two fields). Eg, if the
|
field containing a comma will appear like two fields). Eg, if the
|
||||||
original record is 2020-01-01; "Acme, Inc."; 1,000, the REGEX will ac-
|
original record is 2020-01-01; "Acme, Inc."; 1,000, the REGEX will ac-
|
||||||
tually see 2020-01-01,Acme, Inc., 1,000).
|
tually see 2020-01-01,Acme, Inc., 1,000).
|
||||||
|
|
||||||
@ -502,14 +509,14 @@ CSV RULES
|
|||||||
|
|
||||||
%CSVFIELD REGEX
|
%CSVFIELD REGEX
|
||||||
|
|
||||||
which matches just the content of a particular CSV field. CSVFIELD is
|
which matches just the content of a particular CSV field. CSVFIELD is
|
||||||
a percent sign followed by the field's name or column number, like
|
a percent sign followed by the field's name or column number, like
|
||||||
%date or %1.
|
%date or %1.
|
||||||
|
|
||||||
Combining matchers
|
Combining matchers
|
||||||
A single matcher can be written on the same line as the "if"; or multi-
|
A single matcher can be written on the same line as the "if"; or multi-
|
||||||
ple matchers can be written on the following lines, non-indented. Mul-
|
ple matchers can be written on the following lines, non-indented. Mul-
|
||||||
tiple matchers are OR'd (any one of them can match), unless one begins
|
tiple matchers are OR'd (any one of them can match), unless one begins
|
||||||
with an & symbol, in which case it is AND'ed with the previous matcher.
|
with an & symbol, in which case it is AND'ed with the previous matcher.
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -518,8 +525,8 @@ CSV RULES
|
|||||||
RULE
|
RULE
|
||||||
|
|
||||||
Rules applied on successful match
|
Rules applied on successful match
|
||||||
After the patterns there should be one or more rules to apply, all in-
|
After the patterns there should be one or more rules to apply, all in-
|
||||||
dented by at least one space. Three kinds of rule are allowed in con-
|
dented by at least one space. Three kinds of rule are allowed in con-
|
||||||
ditional blocks:
|
ditional blocks:
|
||||||
|
|
||||||
o field assignments (to set a hledger field)
|
o field assignments (to set a hledger field)
|
||||||
@ -549,11 +556,11 @@ CSV RULES
|
|||||||
MATCHER3,VALUE31,VALUE32,...,VALUE3n
|
MATCHER3,VALUE31,VALUE32,...,VALUE3n
|
||||||
<empty line>
|
<empty line>
|
||||||
|
|
||||||
Conditional tables ("if tables") are a different syntax to specify
|
Conditional tables ("if tables") are a different syntax to specify
|
||||||
field assignments that will be applied only to CSV records which match
|
field assignments that will be applied only to CSV records which match
|
||||||
certain patterns.
|
certain patterns.
|
||||||
|
|
||||||
MATCHER could be either field or record matcher, as described above.
|
MATCHER could be either field or record matcher, as described above.
|
||||||
When MATCHER matches, values from that row would be assigned to the CSV
|
When MATCHER matches, values from that row would be assigned to the CSV
|
||||||
fields named on the if line, in the same order.
|
fields named on the if line, in the same order.
|
||||||
|
|
||||||
@ -577,17 +584,17 @@ CSV RULES
|
|||||||
...
|
...
|
||||||
CSVFIELDNAMEn VALUE3n
|
CSVFIELDNAMEn VALUE3n
|
||||||
|
|
||||||
Each line starting with MATCHER should contain enough (possibly empty)
|
Each line starting with MATCHER should contain enough (possibly empty)
|
||||||
values for all the listed fields.
|
values for all the listed fields.
|
||||||
|
|
||||||
Rules would be checked and applied in the order they are listed in the
|
Rules would be checked and applied in the order they are listed in the
|
||||||
table and, like with if blocks, later rules (in the same or another ta-
|
table and, like with if blocks, later rules (in the same or another ta-
|
||||||
ble) or if blocks could override the effect of any rule.
|
ble) or if blocks could override the effect of any rule.
|
||||||
|
|
||||||
Instead of ',' you can use a variety of other non-alphanumeric charac-
|
Instead of ',' you can use a variety of other non-alphanumeric charac-
|
||||||
ters as a separator. First character after if is taken to be the sepa-
|
ters as a separator. First character after if is taken to be the sepa-
|
||||||
rator for the rest of the table. It is the responsibility of the user
|
rator for the rest of the table. It is the responsibility of the user
|
||||||
to ensure that separator does not occur inside MATCHERs and values -
|
to ensure that separator does not occur inside MATCHERs and values -
|
||||||
there is no way to escape separator.
|
there is no way to escape separator.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
@ -598,7 +605,7 @@ CSV RULES
|
|||||||
2020/01/12.*Plumbing LLC,expenses:house:upkeep,emergency plumbing call-out
|
2020/01/12.*Plumbing LLC,expenses:house:upkeep,emergency plumbing call-out
|
||||||
|
|
||||||
end
|
end
|
||||||
This rule can be used inside if blocks (only), to make hledger stop
|
This rule can be used inside if blocks (only), to make hledger stop
|
||||||
reading this CSV file and move on to the next input file, or to command
|
reading this CSV file and move on to the next input file, or to command
|
||||||
execution. Eg:
|
execution. Eg:
|
||||||
|
|
||||||
@ -609,10 +616,10 @@ CSV RULES
|
|||||||
date-format
|
date-format
|
||||||
date-format DATEFMT
|
date-format DATEFMT
|
||||||
|
|
||||||
This is a helper for the date (and date2) fields. If your CSV dates
|
This is a helper for the date (and date2) fields. If your CSV dates
|
||||||
are not formatted like YYYY-MM-DD, YYYY/MM/DD or YYYY.MM.DD, you'll
|
are not formatted like YYYY-MM-DD, YYYY/MM/DD or YYYY.MM.DD, you'll
|
||||||
need to add a date-format rule describing them with a strptime date
|
need to add a date-format rule describing them with a strptime date
|
||||||
parsing pattern, which must parse the CSV date value completely. Some
|
parsing pattern, which must parse the CSV date value completely. Some
|
||||||
examples:
|
examples:
|
||||||
|
|
||||||
# MM/DD/YY
|
# MM/DD/YY
|
||||||
@ -634,15 +641,15 @@ CSV RULES
|
|||||||
mat.html#v:formatTime
|
mat.html#v:formatTime
|
||||||
|
|
||||||
newest-first
|
newest-first
|
||||||
hledger always sorts the generated transactions by date. Transactions
|
hledger always sorts the generated transactions by date. Transactions
|
||||||
on the same date should appear in the same order as their CSV records,
|
on the same date should appear in the same order as their CSV records,
|
||||||
as hledger can usually auto-detect whether the CSV's normal order is
|
as hledger can usually auto-detect whether the CSV's normal order is
|
||||||
oldest first or newest first. But if all of the following are true:
|
oldest first or newest first. But if all of the following are true:
|
||||||
|
|
||||||
o the CSV might sometimes contain just one day of data (all records
|
o the CSV might sometimes contain just one day of data (all records
|
||||||
having the same date)
|
having the same date)
|
||||||
|
|
||||||
o the CSV records are normally in reverse chronological order (newest
|
o the CSV records are normally in reverse chronological order (newest
|
||||||
at the top)
|
at the top)
|
||||||
|
|
||||||
o and you care about preserving the order of same-day transactions
|
o and you care about preserving the order of same-day transactions
|
||||||
@ -655,9 +662,9 @@ CSV RULES
|
|||||||
include
|
include
|
||||||
include RULESFILE
|
include RULESFILE
|
||||||
|
|
||||||
This includes the contents of another CSV rules file at this point.
|
This includes the contents of another CSV rules file at this point.
|
||||||
RULESFILE is an absolute file path or a path relative to the current
|
RULESFILE is an absolute file path or a path relative to the current
|
||||||
file's directory. This can be useful for sharing common rules between
|
file's directory. This can be useful for sharing common rules between
|
||||||
several rules files, eg:
|
several rules files, eg:
|
||||||
|
|
||||||
# someaccount.csv.rules
|
# someaccount.csv.rules
|
||||||
@ -672,10 +679,10 @@ CSV RULES
|
|||||||
|
|
||||||
balance-type
|
balance-type
|
||||||
Balance assertions generated by assigning to balanceN are of the simple
|
Balance assertions generated by assigning to balanceN are of the simple
|
||||||
= type by default, which is a single-commodity, subaccount-excluding
|
= type by default, which is a single-commodity, subaccount-excluding
|
||||||
assertion. You may find the subaccount-including variants more useful,
|
assertion. You may find the subaccount-including variants more useful,
|
||||||
eg if you have created some virtual subaccounts of checking to help
|
eg if you have created some virtual subaccounts of checking to help
|
||||||
with budgeting. You can select a different type of assertion with the
|
with budgeting. You can select a different type of assertion with the
|
||||||
balance-type rule:
|
balance-type rule:
|
||||||
|
|
||||||
# balance assertions will consider all commodities and all subaccounts
|
# balance assertions will consider all commodities and all subaccounts
|
||||||
@ -690,19 +697,19 @@ CSV RULES
|
|||||||
|
|
||||||
TIPS
|
TIPS
|
||||||
Rapid feedback
|
Rapid feedback
|
||||||
It's a good idea to get rapid feedback while creating/troubleshooting
|
It's a good idea to get rapid feedback while creating/troubleshooting
|
||||||
CSV rules. Here's a good way, using entr from http://eradman.com/entr-
|
CSV rules. Here's a good way, using entr from http://eradman.com/entr-
|
||||||
project :
|
project :
|
||||||
|
|
||||||
$ ls foo.csv* | entr bash -c 'echo ----; hledger -f foo.csv print desc:SOMEDESC'
|
$ 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
|
A desc: query (eg) is used to select just one, or a few, transactions
|
||||||
of interest. "bash -c" is used to run multiple commands, so we can
|
of interest. "bash -c" is used to run multiple commands, so we can
|
||||||
echo a separator each time the command re-runs, making it easier to
|
echo a separator each time the command re-runs, making it easier to
|
||||||
read the output.
|
read the output.
|
||||||
|
|
||||||
Valid CSV
|
Valid CSV
|
||||||
hledger accepts CSV conforming to RFC 4180. When CSV values are en-
|
hledger accepts CSV conforming to RFC 4180. When CSV values are en-
|
||||||
closed in quotes, note:
|
closed in quotes, note:
|
||||||
|
|
||||||
o they must be double quotes (not single quotes)
|
o they must be double quotes (not single quotes)
|
||||||
@ -710,10 +717,10 @@ TIPS
|
|||||||
o spaces outside the quotes are not allowed
|
o spaces outside the quotes are not allowed
|
||||||
|
|
||||||
File Extension
|
File Extension
|
||||||
CSV ("Character Separated Values") files should be named with one of
|
To help hledger identify the format and show the right error messages,
|
||||||
these filename extensions: .csv, .ssv, .tsv. Or, the file path should
|
CSV/SSV/TSV files should normally be named with a .csv, .ssv or .tsv
|
||||||
be prefixed with one of csv:, ssv:, tsv:. This helps hledger identify
|
filename extension. Or, the file path should be prefixed with csv:,
|
||||||
the format and show the right error messages. For example:
|
ssv: or tsv:. Eg:
|
||||||
|
|
||||||
$ hledger -f foo.ssv print
|
$ hledger -f foo.ssv print
|
||||||
|
|
||||||
@ -721,7 +728,8 @@ TIPS
|
|||||||
|
|
||||||
$ cat foo | hledger -f ssv:- foo
|
$ cat foo | hledger -f ssv:- foo
|
||||||
|
|
||||||
More about this: Input files in the hledger manual.
|
You can override the file extension with a separator rule if needed.
|
||||||
|
See also: Input files in the hledger manual.
|
||||||
|
|
||||||
Reading multiple CSV files
|
Reading multiple CSV files
|
||||||
If you use multiple -f options to read multiple CSV files at once,
|
If you use multiple -f options to read multiple CSV files at once,
|
||||||
@ -914,4 +922,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.18.99 August 2020 hledger_csv(5)
|
hledger 1.18.99 September 2020 hledger_csv(5)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"t
|
||||||
|
|
||||||
.TH "hledger_journal" "5" "August 2020" "hledger 1.18.99" "hledger User Manuals"
|
.TH "hledger_journal" "5" "September 2020" "hledger 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1526,4 +1526,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.18.99 August 2020 hledger_journal(5)
|
hledger 1.18.99 September 2020 hledger_journal(5)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger_timeclock" "5" "August 2020" "hledger 1.18.99" "hledger User Manuals"
|
.TH "hledger_timeclock" "5" "September 2020" "hledger 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -78,4 +78,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.18.99 August 2020 hledger_timeclock(5)
|
hledger 1.18.99 September 2020 hledger_timeclock(5)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger_timedot" "5" "August 2020" "hledger 1.18.99" "hledger User Manuals"
|
.TH "hledger_timedot" "5" "September 2020" "hledger 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -161,4 +161,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.18.99 August 2020 hledger_timedot(5)
|
hledger 1.18.99 September 2020 hledger_timedot(5)
|
||||||
|
|||||||
@ -4,4 +4,4 @@ m4_dnl Program version. Updated by make setversion.
|
|||||||
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
||||||
m4_dnl
|
m4_dnl
|
||||||
m4_dnl Date to show in man pages. Updated by make setdate.
|
m4_dnl Date to show in man pages. Updated by make setdate.
|
||||||
m4_define({{_monthyear_}}, {{August 2020}})m4_dnl
|
m4_define({{_monthyear_}}, {{September 2020}})m4_dnl
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger-ui" "1" "August 2020" "hledger-ui 1.18.99" "hledger User Manuals"
|
.TH "hledger-ui" "1" "September 2020" "hledger-ui 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -456,4 +456,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-ui 1.18.99 August 2020 hledger-ui(1)
|
hledger-ui 1.18.99 September 2020 hledger-ui(1)
|
||||||
|
|||||||
@ -4,4 +4,4 @@ m4_dnl Program version. Updated by make setversion.
|
|||||||
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
||||||
m4_dnl
|
m4_dnl
|
||||||
m4_dnl Date to show in man pages. Updated by make setdate.
|
m4_dnl Date to show in man pages. Updated by make setdate.
|
||||||
m4_define({{_monthyear_}}, {{August 2020}})m4_dnl
|
m4_define({{_monthyear_}}, {{September 2020}})m4_dnl
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
.TH "hledger-web" "1" "August 2020" "hledger-web 1.18.99" "hledger User Manuals"
|
.TH "hledger-web" "1" "September 2020" "hledger-web 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -545,4 +545,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-web 1.18.99 August 2020 hledger-web(1)
|
hledger-web 1.18.99 September 2020 hledger-web(1)
|
||||||
|
|||||||
@ -47,8 +47,7 @@ $ hledger balance
|
|||||||
By default, accounts are displayed hierarchically, with subaccounts
|
By default, accounts are displayed hierarchically, with subaccounts
|
||||||
indented below their parent. At each level of the tree, accounts are
|
indented below their parent. At each level of the tree, accounts are
|
||||||
sorted by account code if any, then by account name. Or with
|
sorted by account code if any, then by account name. Or with
|
||||||
-S/--sort-amount, by their balance amount, largest first. (Note: -S has
|
-S/--sort-amount, by their balance amount, largest first.
|
||||||
a problem in hledger 1.11-1.18).
|
|
||||||
|
|
||||||
"Boring" accounts, which contain a single interesting subaccount and no
|
"Boring" accounts, which contain a single interesting subaccount and no
|
||||||
balance of their own, are elided into the following line for more
|
balance of their own, are elided into the following line for more
|
||||||
|
|||||||
@ -4,4 +4,4 @@ m4_dnl Program version. Updated by make setversion.
|
|||||||
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
m4_define({{_version_}}, {{1.18.99}})m4_dnl
|
||||||
m4_dnl
|
m4_dnl
|
||||||
m4_dnl Date to show in man pages. Updated by make setdate.
|
m4_dnl Date to show in man pages. Updated by make setdate.
|
||||||
m4_define({{_monthyear_}}, {{August 2020}})m4_dnl
|
m4_define({{_monthyear_}}, {{September 2020}})m4_dnl
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
.\"t
|
.\"t
|
||||||
|
|
||||||
.TH "hledger" "1" "August 2020" "hledger 1.18.99" "hledger User Manuals"
|
.TH "hledger" "1" "September 2020" "hledger 1.18.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -982,15 +982,12 @@ $ cat some.journal | hledger -f-
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Usually the data file is in hledger\[aq]s journal format, but it can
|
Usually the data file is in hledger\[aq]s journal format, but it can be
|
||||||
also be one of several other formats, listed below.
|
in any of the supported file formats, which currently are:
|
||||||
hledger detects the format automatically based on the file extension, or
|
|
||||||
if that is not recognised, by trying each built-in \[dq]reader\[dq] in
|
|
||||||
turn:
|
|
||||||
.PP
|
.PP
|
||||||
.TS
|
.TS
|
||||||
tab(@);
|
tab(@);
|
||||||
lw(7.6n) lw(31.2n) lw(31.2n).
|
lw(7.8n) lw(39.5n) lw(22.7n).
|
||||||
T{
|
T{
|
||||||
Reader:
|
Reader:
|
||||||
T}@T{
|
T}@T{
|
||||||
@ -1002,37 +999,45 @@ _
|
|||||||
T{
|
T{
|
||||||
\f[C]journal\f[R]
|
\f[C]journal\f[R]
|
||||||
T}@T{
|
T}@T{
|
||||||
hledger\[aq]s journal format, also some Ledger journals
|
hledger journal files and some Ledger journals, for transactions
|
||||||
T}@T{
|
T}@T{
|
||||||
\f[C].journal\f[R] \f[C].j\f[R] \f[C].hledger\f[R] \f[C].ledger\f[R]
|
\f[C].journal\f[R] \f[C].j\f[R] \f[C].hledger\f[R] \f[C].ledger\f[R]
|
||||||
T}
|
T}
|
||||||
T{
|
T{
|
||||||
\f[C]timeclock\f[R]
|
\f[C]timeclock\f[R]
|
||||||
T}@T{
|
T}@T{
|
||||||
timeclock files (precise time logging)
|
timeclock files, for precise time logging
|
||||||
T}@T{
|
T}@T{
|
||||||
\f[C].timeclock\f[R]
|
\f[C].timeclock\f[R]
|
||||||
T}
|
T}
|
||||||
T{
|
T{
|
||||||
\f[C]timedot\f[R]
|
\f[C]timedot\f[R]
|
||||||
T}@T{
|
T}@T{
|
||||||
timedot files (approximate time logging)
|
timedot files, for approximate time logging
|
||||||
T}@T{
|
T}@T{
|
||||||
\f[C].timedot\f[R]
|
\f[C].timedot\f[R]
|
||||||
T}
|
T}
|
||||||
T{
|
T{
|
||||||
\f[C]csv\f[R]
|
\f[C]csv\f[R]
|
||||||
T}@T{
|
T}@T{
|
||||||
comma-separated values (data interchange)
|
comma/semicolon/tab/other-separated values, for data import
|
||||||
T}@T{
|
T}@T{
|
||||||
\f[C].csv\f[R]
|
\f[C].csv\f[R] \f[C].ssv\f[R] \f[C].tsv\f[R]
|
||||||
T}
|
T}
|
||||||
.TE
|
.TE
|
||||||
.PP
|
.PP
|
||||||
If needed (eg to ensure correct error messages when a file has the
|
hledger detects the format automatically based on the file extensions
|
||||||
\[dq]wrong\[dq] extension), you can force a specific reader/format by
|
shown above.
|
||||||
prepending it to the file path with a colon.
|
If it can\[aq]t recognise the file extension, it assumes
|
||||||
Examples:
|
\f[C]journal\f[R] format.
|
||||||
|
So for non-journal files, it\[aq]s important to use a recognised file
|
||||||
|
extension, so as to either read successfully or to show relevant error
|
||||||
|
messages.
|
||||||
|
.PP
|
||||||
|
When you can\[aq]t ensure the right file extension, not to worry: you
|
||||||
|
can force a specific reader/format by prefixing the file path with the
|
||||||
|
format and a colon.
|
||||||
|
Eg to read a .dat file as csv:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -1041,16 +1046,20 @@ $ echo \[aq]i 2009/13/1 08:00:00\[aq] | hledger print -ftimeclock:-
|
|||||||
\f[R]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
You can also specify multiple \f[C]-f\f[R] options, to read multiple
|
You can specify multiple \f[C]-f\f[R] options, to read multiple files as
|
||||||
files as one big journal.
|
one big journal.
|
||||||
There are some limitations with this:
|
There are some limitations with this:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
directives in one file will not affect the other files
|
directives in one file will not affect the other files
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
balance assertions will not see any account balances from previous files
|
balance assertions will not see any account balances from previous files
|
||||||
.PP
|
.PP
|
||||||
If you need those, either use the include directive, or concatenate the
|
If you need either of those things, you can
|
||||||
files, eg: \f[C]cat a.journal b.journal | hledger -f- CMD\f[R].
|
.IP \[bu] 2
|
||||||
|
use a single parent file which includes the others
|
||||||
|
.IP \[bu] 2
|
||||||
|
or concatenate the files into one before reading, eg:
|
||||||
|
\f[C]cat a.journal b.journal | hledger -f- CMD\f[R].
|
||||||
.SS Output destination
|
.SS Output destination
|
||||||
.PP
|
.PP
|
||||||
hledger commands send their output to the terminal by default.
|
hledger commands send their output to the terminal by default.
|
||||||
@ -2676,7 +2685,6 @@ At each level of the tree, accounts are sorted by account code if any,
|
|||||||
then by account name.
|
then by account name.
|
||||||
Or with \f[C]-S/--sort-amount\f[R], by their balance amount, largest
|
Or with \f[C]-S/--sort-amount\f[R], by their balance amount, largest
|
||||||
first.
|
first.
|
||||||
(Note: \f[C]-S\f[R] has a problem in hledger 1.11-1.18).
|
|
||||||
.PP
|
.PP
|
||||||
\[dq]Boring\[dq] accounts, which contain a single interesting subaccount
|
\[dq]Boring\[dq] accounts, which contain a single interesting subaccount
|
||||||
and no balance of their own, are elided into the following line for more
|
and no balance of their own, are elided into the following line for more
|
||||||
|
|||||||
@ -955,38 +955,46 @@ $ hledger -f /some/file stats
|
|||||||
|
|
||||||
$ cat some.journal | hledger -f-
|
$ cat some.journal | hledger -f-
|
||||||
|
|
||||||
Usually the data file is in hledger's journal format, but it can also
|
Usually the data file is in hledger's journal format, but it can be
|
||||||
be one of several other formats, listed below. hledger detects the
|
in any of the supported file formats, which currently are:
|
||||||
format automatically based on the file extension, or if that is not
|
|
||||||
recognised, by trying each built-in "reader" in turn:
|
|
||||||
|
|
||||||
Reader: Reads: Used for file extensions:
|
Reader: Reads: Used for file
|
||||||
---------------------------------------------------------------------------
|
extensions:
|
||||||
'journal'hledger's journal format, also '.journal' '.j' '.hledger'
|
--------------------------------------------------------------------------
|
||||||
some Ledger journals '.ledger'
|
'journal'hledger journal files and some Ledger '.journal' '.j'
|
||||||
'timeclock'timeclock files (precise time '.timeclock'
|
journals, for transactions '.hledger' '.ledger'
|
||||||
logging)
|
'timeclock'timeclock files, for precise time '.timeclock'
|
||||||
'timedot'timedot files (approximate '.timedot'
|
logging
|
||||||
time logging)
|
'timedot'timedot files, for approximate time '.timedot'
|
||||||
'csv' comma-separated values (data '.csv'
|
logging
|
||||||
interchange)
|
'csv' comma/semicolon/tab/other-separated '.csv' '.ssv' '.tsv'
|
||||||
|
values, for data import
|
||||||
|
|
||||||
If needed (eg to ensure correct error messages when a file has the
|
hledger detects the format automatically based on the file extensions
|
||||||
"wrong" extension), you can force a specific reader/format by prepending
|
shown above. If it can't recognise the file extension, it assumes
|
||||||
it to the file path with a colon. Examples:
|
'journal' format. So for non-journal files, it's important to use a
|
||||||
|
recognised file extension, so as to either read successfully or to show
|
||||||
|
relevant error messages.
|
||||||
|
|
||||||
|
When you can't ensure the right file extension, not to worry: you can
|
||||||
|
force a specific reader/format by prefixing the file path with the
|
||||||
|
format and a colon. Eg to read a .dat file as csv:
|
||||||
|
|
||||||
$ hledger -f csv:/some/csv-file.dat stats
|
$ hledger -f csv:/some/csv-file.dat stats
|
||||||
$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
|
$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
|
||||||
|
|
||||||
You can also specify multiple '-f' options, to read multiple files as
|
You can specify multiple '-f' options, to read multiple files as one
|
||||||
one big journal. There are some limitations with this:
|
big journal. There are some limitations with this:
|
||||||
|
|
||||||
* directives in one file will not affect the other files
|
* directives in one file will not affect the other files
|
||||||
* balance assertions will not see any account balances from previous
|
* balance assertions will not see any account balances from previous
|
||||||
files
|
files
|
||||||
|
|
||||||
If you need those, either use the include directive, or concatenate
|
If you need either of those things, you can
|
||||||
the files, eg: 'cat a.journal b.journal | hledger -f- CMD'.
|
|
||||||
|
* use a single parent file which includes the others
|
||||||
|
* or concatenate the files into one before reading, eg: 'cat
|
||||||
|
a.journal b.journal | hledger -f- CMD'.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Output destination, Next: Output format, Prev: Input files, Up: OPTIONS
|
File: hledger.info, Node: Output destination, Next: Output format, Prev: Input files, Up: OPTIONS
|
||||||
@ -2205,8 +2213,7 @@ $ hledger balance
|
|||||||
By default, accounts are displayed hierarchically, with subaccounts
|
By default, accounts are displayed hierarchically, with subaccounts
|
||||||
indented below their parent. At each level of the tree, accounts are
|
indented below their parent. At each level of the tree, accounts are
|
||||||
sorted by account code if any, then by account name. Or with
|
sorted by account code if any, then by account name. Or with
|
||||||
'-S/--sort-amount', by their balance amount, largest first. (Note: '-S'
|
'-S/--sort-amount', by their balance amount, largest first.
|
||||||
has a problem in hledger 1.11-1.18).
|
|
||||||
|
|
||||||
"Boring" accounts, which contain a single interesting subaccount and
|
"Boring" accounts, which contain a single interesting subaccount and
|
||||||
no balance of their own, are elided into the following line for more
|
no balance of their own, are elided into the following line for more
|
||||||
@ -4095,164 +4102,164 @@ Node: Unicode characters28869
|
|||||||
Ref: #unicode-characters29051
|
Ref: #unicode-characters29051
|
||||||
Node: Input files30463
|
Node: Input files30463
|
||||||
Ref: #input-files30606
|
Ref: #input-files30606
|
||||||
Node: Output destination32535
|
Node: Output destination32905
|
||||||
Ref: #output-destination32687
|
Ref: #output-destination33057
|
||||||
Node: Output format33112
|
Node: Output format33482
|
||||||
Ref: #output-format33262
|
Ref: #output-format33632
|
||||||
Node: Regular expressions35429
|
Node: Regular expressions35799
|
||||||
Ref: #regular-expressions35586
|
Ref: #regular-expressions35956
|
||||||
Node: Smart dates37322
|
Node: Smart dates37692
|
||||||
Ref: #smart-dates37473
|
Ref: #smart-dates37843
|
||||||
Node: Report start & end date38834
|
Node: Report start & end date39204
|
||||||
Ref: #report-start-end-date39006
|
Ref: #report-start-end-date39376
|
||||||
Node: Report intervals40503
|
Node: Report intervals40873
|
||||||
Ref: #report-intervals40668
|
Ref: #report-intervals41038
|
||||||
Node: Period expressions41058
|
Node: Period expressions41428
|
||||||
Ref: #period-expressions41218
|
Ref: #period-expressions41588
|
||||||
Node: Depth limiting45550
|
Node: Depth limiting45920
|
||||||
Ref: #depth-limiting45694
|
Ref: #depth-limiting46064
|
||||||
Node: Pivoting46026
|
Node: Pivoting46396
|
||||||
Ref: #pivoting46149
|
Ref: #pivoting46519
|
||||||
Node: Valuation47825
|
Node: Valuation48195
|
||||||
Ref: #valuation47927
|
Ref: #valuation48297
|
||||||
Node: -B Cost48616
|
Node: -B Cost48986
|
||||||
Ref: #b-cost48720
|
Ref: #b-cost49090
|
||||||
Node: -V Value48853
|
Node: -V Value49223
|
||||||
Ref: #v-value48999
|
Ref: #v-value49369
|
||||||
Node: -X Value in specified commodity49194
|
Node: -X Value in specified commodity49564
|
||||||
Ref: #x-value-in-specified-commodity49393
|
Ref: #x-value-in-specified-commodity49763
|
||||||
Node: Valuation date49542
|
Node: Valuation date49912
|
||||||
Ref: #valuation-date49710
|
Ref: #valuation-date50080
|
||||||
Node: Market prices50120
|
Node: Market prices50490
|
||||||
Ref: #market-prices50300
|
Ref: #market-prices50670
|
||||||
Node: --infer-value market prices from transactions51077
|
Node: --infer-value market prices from transactions51447
|
||||||
Ref: #infer-value-market-prices-from-transactions51326
|
Ref: #infer-value-market-prices-from-transactions51696
|
||||||
Node: Valuation commodity52608
|
Node: Valuation commodity52978
|
||||||
Ref: #valuation-commodity52817
|
Ref: #valuation-commodity53187
|
||||||
Node: Simple valuation examples54043
|
Node: Simple valuation examples54413
|
||||||
Ref: #simple-valuation-examples54245
|
Ref: #simple-valuation-examples54615
|
||||||
Node: --value Flexible valuation54904
|
Node: --value Flexible valuation55274
|
||||||
Ref: #value-flexible-valuation55112
|
Ref: #value-flexible-valuation55482
|
||||||
Node: More valuation examples57059
|
Node: More valuation examples57429
|
||||||
Ref: #more-valuation-examples57268
|
Ref: #more-valuation-examples57638
|
||||||
Node: Effect of valuation on reports59273
|
Node: Effect of valuation on reports59643
|
||||||
Ref: #effect-of-valuation-on-reports59461
|
Ref: #effect-of-valuation-on-reports59831
|
||||||
Node: COMMANDS64982
|
Node: COMMANDS65352
|
||||||
Ref: #commands65090
|
Ref: #commands65460
|
||||||
Node: accounts66198
|
Node: accounts66568
|
||||||
Ref: #accounts66296
|
Ref: #accounts66666
|
||||||
Node: activity66995
|
Node: activity67365
|
||||||
Ref: #activity67105
|
Ref: #activity67475
|
||||||
Node: add67488
|
Node: add67858
|
||||||
Ref: #add67589
|
Ref: #add67959
|
||||||
Node: aregister70382
|
Node: aregister70752
|
||||||
Ref: #aregister70494
|
Ref: #aregister70864
|
||||||
Node: aregister and custom posting dates71867
|
Node: aregister and custom posting dates72237
|
||||||
Ref: #aregister-and-custom-posting-dates72040
|
Ref: #aregister-and-custom-posting-dates72410
|
||||||
Ref: #output-format-172633
|
Ref: #output-format-173003
|
||||||
Node: balance73038
|
Node: balance73408
|
||||||
Ref: #balance73155
|
Ref: #balance73525
|
||||||
Node: Classic balance report74613
|
Node: Classic balance report74983
|
||||||
Ref: #classic-balance-report74786
|
Ref: #classic-balance-report75156
|
||||||
Node: Customising the classic balance report76220
|
Node: Customising the classic balance report76540
|
||||||
Ref: #customising-the-classic-balance-report76448
|
Ref: #customising-the-classic-balance-report76768
|
||||||
Node: Colour support78524
|
Node: Colour support78844
|
||||||
Ref: #colour-support78691
|
Ref: #colour-support79011
|
||||||
Node: Flat mode78787
|
Node: Flat mode79107
|
||||||
Ref: #flat-mode78935
|
Ref: #flat-mode79255
|
||||||
Node: Depth limited balance reports79348
|
Node: Depth limited balance reports79668
|
||||||
Ref: #depth-limited-balance-reports79533
|
Ref: #depth-limited-balance-reports79853
|
||||||
Node: Percentages79989
|
Node: Percentages80309
|
||||||
Ref: #percentages80155
|
Ref: #percentages80475
|
||||||
Node: Multicolumn balance report81292
|
Node: Multicolumn balance report81612
|
||||||
Ref: #multicolumn-balance-report81472
|
Ref: #multicolumn-balance-report81792
|
||||||
Node: Budget report87069
|
Node: Budget report87389
|
||||||
Ref: #budget-report87212
|
Ref: #budget-report87532
|
||||||
Node: Nested budgets92478
|
Node: Nested budgets92798
|
||||||
Ref: #nested-budgets92590
|
Ref: #nested-budgets92910
|
||||||
Ref: #output-format-296071
|
Ref: #output-format-296391
|
||||||
Node: balancesheet96268
|
Node: balancesheet96588
|
||||||
Ref: #balancesheet96404
|
Ref: #balancesheet96724
|
||||||
Node: balancesheetequity97916
|
Node: balancesheetequity98236
|
||||||
Ref: #balancesheetequity98065
|
Ref: #balancesheetequity98385
|
||||||
Node: cashflow99141
|
Node: cashflow99461
|
||||||
Ref: #cashflow99269
|
Ref: #cashflow99589
|
||||||
Node: check-dates100485
|
Node: check-dates100805
|
||||||
Ref: #check-dates100612
|
Ref: #check-dates100932
|
||||||
Node: check-dupes100891
|
Node: check-dupes101211
|
||||||
Ref: #check-dupes101017
|
Ref: #check-dupes101337
|
||||||
Node: close101310
|
Node: close101630
|
||||||
Ref: #close101418
|
Ref: #close101738
|
||||||
Node: close usage102940
|
Node: close usage103260
|
||||||
Ref: #close-usage103033
|
Ref: #close-usage103353
|
||||||
Node: codes105846
|
Node: codes106166
|
||||||
Ref: #codes105954
|
Ref: #codes106274
|
||||||
Node: commodities106666
|
Node: commodities106986
|
||||||
Ref: #commodities106793
|
Ref: #commodities107113
|
||||||
Node: descriptions106875
|
Node: descriptions107195
|
||||||
Ref: #descriptions107003
|
Ref: #descriptions107323
|
||||||
Node: diff107307
|
Node: diff107627
|
||||||
Ref: #diff107413
|
Ref: #diff107733
|
||||||
Node: files108460
|
Node: files108780
|
||||||
Ref: #files108560
|
Ref: #files108880
|
||||||
Node: help108707
|
Node: help109027
|
||||||
Ref: #help108807
|
Ref: #help109127
|
||||||
Node: import109888
|
Node: import110208
|
||||||
Ref: #import110002
|
Ref: #import110322
|
||||||
Node: Importing balance assignments110895
|
Node: Importing balance assignments111215
|
||||||
Ref: #importing-balance-assignments111043
|
Ref: #importing-balance-assignments111363
|
||||||
Node: incomestatement111692
|
Node: incomestatement112012
|
||||||
Ref: #incomestatement111825
|
Ref: #incomestatement112145
|
||||||
Node: notes113170
|
Node: notes113490
|
||||||
Ref: #notes113283
|
Ref: #notes113603
|
||||||
Node: payees113651
|
Node: payees113971
|
||||||
Ref: #payees113757
|
Ref: #payees114077
|
||||||
Node: prices114177
|
Node: prices114497
|
||||||
Ref: #prices114283
|
Ref: #prices114603
|
||||||
Node: print114624
|
Node: print114944
|
||||||
Ref: #print114734
|
Ref: #print115054
|
||||||
Node: print-unique119530
|
Node: print-unique119850
|
||||||
Ref: #print-unique119656
|
Ref: #print-unique119976
|
||||||
Node: register119941
|
Node: register120261
|
||||||
Ref: #register120068
|
Ref: #register120388
|
||||||
Node: Custom register output124517
|
Node: Custom register output124837
|
||||||
Ref: #custom-register-output124646
|
Ref: #custom-register-output124966
|
||||||
Node: register-match125983
|
Node: register-match126303
|
||||||
Ref: #register-match126117
|
Ref: #register-match126437
|
||||||
Node: rewrite126468
|
Node: rewrite126788
|
||||||
Ref: #rewrite126583
|
Ref: #rewrite126903
|
||||||
Node: Re-write rules in a file128438
|
Node: Re-write rules in a file128758
|
||||||
Ref: #re-write-rules-in-a-file128572
|
Ref: #re-write-rules-in-a-file128892
|
||||||
Node: Diff output format129782
|
Node: Diff output format130102
|
||||||
Ref: #diff-output-format129951
|
Ref: #diff-output-format130271
|
||||||
Node: rewrite vs print --auto131043
|
Node: rewrite vs print --auto131363
|
||||||
Ref: #rewrite-vs.-print---auto131222
|
Ref: #rewrite-vs.-print---auto131542
|
||||||
Node: roi131778
|
Node: roi132098
|
||||||
Ref: #roi131876
|
Ref: #roi132196
|
||||||
Node: stats132888
|
Node: stats133208
|
||||||
Ref: #stats132987
|
Ref: #stats133307
|
||||||
Node: tags133775
|
Node: tags134095
|
||||||
Ref: #tags133873
|
Ref: #tags134193
|
||||||
Node: test134392
|
Node: test134712
|
||||||
Ref: #test134500
|
Ref: #test134820
|
||||||
Node: Add-on commands135247
|
Node: Add-on commands135567
|
||||||
Ref: #add-on-commands135364
|
Ref: #add-on-commands135684
|
||||||
Node: ui136707
|
Node: ui137027
|
||||||
Ref: #ui136795
|
Ref: #ui137115
|
||||||
Node: web136849
|
Node: web137169
|
||||||
Ref: #web136952
|
Ref: #web137272
|
||||||
Node: iadd137068
|
Node: iadd137388
|
||||||
Ref: #iadd137179
|
Ref: #iadd137499
|
||||||
Node: interest137261
|
Node: interest137581
|
||||||
Ref: #interest137368
|
Ref: #interest137688
|
||||||
Node: ENVIRONMENT137608
|
Node: ENVIRONMENT137928
|
||||||
Ref: #environment137720
|
Ref: #environment138040
|
||||||
Node: FILES138705
|
Node: FILES139025
|
||||||
Ref: #files-1138808
|
Ref: #files-1139128
|
||||||
Node: LIMITATIONS139021
|
Node: LIMITATIONS139341
|
||||||
Ref: #limitations139140
|
Ref: #limitations139460
|
||||||
Node: TROUBLESHOOTING139882
|
Node: TROUBLESHOOTING140202
|
||||||
Ref: #troubleshooting139995
|
Ref: #troubleshooting140315
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user