LEDGER(1) 通用命令手册 LEDGER(1)

ledger命令行复式记账报表工具

ledger [选项] [命令] [参数]

ledger 是一款基于复式记账的强大性和完整性的命令行会计工具。它仅是一个报表工具,这意味着它从不修改您的数据文件,但提供了大量报表选项以及多种自定义方式以满足您的需求。

ledger 接受多个顶级命令,每个命令生成不同类型的基报表。大多数命令接受 报表查询 参数,以确定应报告的内容。要了解 报表查询 的语法,请参阅 查询 部分。在最基本的形式中,只需指定一个或多个字符串即可生成包含这些字符串的所有账户的报表。

如果未给出命令,ledger 将进入 REPL(读取-求值-打印循环)或命令循环,允许在同一数据集上执行多个命令而无需重新解析。

以下是接受的报表命令的完整列表:

[报表查询]
列出与 报表查询 匹配的所有过账账户。
[报表查询]
打印余额报表,显示与 报表查询 匹配的过账总额以及这些账户父级的汇总总额。与此命令最常用的选项有:
(-B)
按成本基础而非金额或价值进行报告。这是唯一一种在没有指定 报表查询 时始终保证余额为零的报表形式。仅显示最顶层账户的总额。
(-E)
显示总额为零的账户。
不显示层次树结构,而是将报表扁平化,仅显示与 报表查询 匹配的账户的小计。
抑制报表底部显示的汇总总额。

同义词 balb 也被接受。

[报表查询]
一种特殊的余额报表,包含三个额外列:报告期间的预算金额、支出与预算的差异以及预算支出百分比(如果超出预算则超过 100%)。请注意,预算功能需要在您的数据文件中定义一个或多个“周期性交易”。更多信息请参阅手册。
[report-query]
一种特殊的余额报告,增加了两列额外信息:每个账户的已清算余额,以及该账户中最近一次已清算记账的日期。要使这种会计核算有意义,至少需要在一个记账项上设置已清算标志。更多信息请参阅手册。
[report-query]
列出与report-query匹配的记账项中的所有商品。
从 CSV(逗号分隔值)文件中读取数据,并生成ledger交易记录。
[report-query]
以 CSV 格式(逗号分隔值)报告与report-query匹配的记账项。适用于将数据导出到电子表格进行进一步分析或图表制作。
[entry-template]
通过将entry-template与数据文件中的交易记录进行比较,生成并显示一个新的、格式正确的ledger交易。关于草稿模板和使用此命令快速创建新交易的更多信息,请参阅ENTRIES章节。

同义词xact也可接受。

[query]
以 Emacs 编辑器可直接使用的格式输出记账和交易数据,采用一系列 Lisp 形式。这被 Emacs ledger-mode 用于处理来自ledger的报告数据。
[report-query]
打印一个包含一系列记账项的交易,这些记账项在名为Equity:Opening Balances的特殊账户中平衡与report-query匹配的账户的当前总额。此报告的目的是结清前一年的账目,同时使用这些权益记账项来结转这些余额。
[report-query]
列出与report-query匹配的记账项中的所有收款人。
生成一个可用于通过 graphviz 生成图表显示ledger文件中商品关系的文件。
[report-query]
报告与report-query匹配的记账项中所有商品的价格。价格以单日粒度报告。
[report-query]
报告与report-query匹配的记账项中所有商品的价格。价格精确到秒,使用与~/.pricedb文件相同的格式。
[report-query]
使用与数据文件中相同的格式打印出所有匹配条目的完整交易记录。这可用于从ledger文件中提取子集以传输到其他文件。
[options]
在 REPL 环境中,推送一组命令行options,使其应用于所有后续报告。
在 REPL 环境中,弹出所有已被push推送的选项设置。
[report-query]
列出所有与报表查询匹配的记账条目。这是最常用的命令之一,可用于提供各种有用的报表。与此命令最常用的选项包括:

(-A)
显示运行平均值,而非运行总计。
(-c)
不显示今天之后的记账条目。
"商品 [, 商品, ...]" (-X)
如果能够确定价格转换率,则以给定的商品显示所有价值。如果给出多个商品,列出的商品价值将保持不变,其他商品将显示在它们可以转换到的第一个列出的商品中。汇率始终相对于计算它们的记账条目的日期显示。这意味着register报表是一个历史价值报表。对于当前价值,可能更倾向于使用balance报表。
(-G)
显示商品价值随时间产生的任何收益(或损失)。
仅显示前数量个记账条目。
(-H)
按商品获取时的价值计算。
反转显示金额的价值。
(-V)
显示所有金额的当前市场价值。这是以一种有些神奇的方式确定的。可能更直接的方法是使用--exchange选项。
时间段 (-p)
仅显示给定时间段内的记账条目。
显示与原本会显示的记账条目相关的条目。其效果是显示记账条目的"另一方"。
值表达式 (-S)
通过评估给定的值表达式对记账条目进行排序。请注意,允许使用逗号分隔的表达式列表,在这种情况下,每个排序项按顺序使用以确定最终排序。例如,要按日期和金额搜索,可以使用:
ledger reg --sort 'date, amount'
排序顺序可以通过'-'符号控制。例如,要按反向时间顺序排序:
ledger reg --sort '-date'
数量
仅显示最后数量个记账条目。
(-U)
仅显示未清算(即最近的)记账条目。

还有几个分组选项可能很有用:

(-P 极)
按共同的收款人名称分组记账条目。
(-D)
按天分组记账条目。
(-W)极 dt
按周分组记账条目(从周日开始)。
将按周分组的每个报表的开始设置为给定的
(-M)
按月分组记账条目。
按财季分组记账条目。
(-Y)
按年分组记账条目。
按记账条目发生的星期几分组。
(-s)
将所有记账条目分组在一起。这与balance报表显示的总计非常相似。

同义词regr也被接受。

[sql-query]
列出所有匹配sql-query的记账条目。此命令允许生成类似 SQL 的查询,例如:
ledger select date,amount from posts where account=~/Income/
解析账本文件并检查错误。如果未发现错误,ledger将返回成功状态。
[report-query]
提供匹配report-query的所有记账条目的摘要信息。包括:
  • 所有匹配条目的时间范围
  • 唯一收款方
  • 唯一账户
  • 记账条目总数
  • 未清算条目
  • 距离上次记账的天数
  • 最近 7 天内的条目
  • 最近 30 天内的条目
  • 本月条目
[report-query]
以 XML 格式输出当前报告的相关数据。包含报告中涉及的所有账户和商品,以及记账条目及其所属的交易。详情请参阅手册。

INT
设置账户名称在无法适应account-width时的最小缩写长度。如果INT为零,账户名称将从右侧截断。如果INT大于account-width,账户名称将从左侧截断,且不会为适应指定宽度而缩短名称。
EXPR
在所有报告的账户前添加EXPR。例如,选项--account "'Personal'"会在每个账户前添加Personal:,而--account "tag('VAT')"会在balanceregister报告中每个账户前添加 VAT 标签的值。
INT
register 报告中账户列的宽度设置为 INT 个字符。
(-L)
仅报告实际交易,不使用自动化或虚拟交易。
仅显示未预算的记账条目。
使用报告期开始作为间隔起点,而非周、月、季度或年的开始。
EXPR (-t)
对记账金额应用给定的值表达式。使用--amount EXPR可以对记账条目进行任意转换。
(-j)
在登记报告中仅打印日期和记账金额。适用于图表和电子表格应用。
INT
设置 register 报告中金额列的字符宽度。
匿名化注册表输出,主要用于提交错误报告。
如果终端支持则使用颜色。是--color的别名
忽略 ledger 运行的初始化文件和环境变量。
在使用 convert 命令从 CSV 文件生成账本交易时,自动匹配账本日记中的账户。
显示所有计算的辅助日期。--effective 的别名
(-A)
打印交易数量的平均值而非运行总计。
在余额报告中报告每种商品的购买平均价格。
FMT
指定用于 balance 报告的格式。
将可转换的商品减少到转换的底部,例如以秒为单位显示时间。
(-B)
报告所有过账的成本基础。--cost 的别名
DATE (-b)
指定所有计算的起始日期。该日期之前的交易将被忽略。
EXPR
如果给定的值表达式为真,则以粗体打印整行。
仅显示预算项目。在 register 报告中,这会显示预算中的交易;在余额报告中,这会显示预算中的账户。
FMT
指定用于 budget 报告的格式。
(-P)
在登记报告中按共同的收款人名称对过账进行分组。
对收款人以及账户、商品和标签启用严格和迂腐的检查。
(-C)
仅显示已清算的记账。
FMT
指定用于 cleared 报告的格式
(-n)
仅打印顶级账户。
仅在账户余额为零时折叠账户显示。
如果终端支持,则使用颜色。--ansi 的别名
INT
使 register 报告宽度为 INT 个字符。默认情况下,ledger 将使用终端中所有可用的列。
报告所有过账的成本基础。--basis 的别名。
指示 ledger 在附加到 commoditiesaccountspayees 命令时报告项目数量。
FMT
根据 FMT 格式化 csv 报告。
(-c)
--limit 'date <= today' 的简写形式。
(-D)
--period daily 的简写形式。
EXPR
使用EXPR转换交易的日期。
DATEFMT (-y)
使用 DATEFMT 格式打印日期。关于格式字符串语法的详细信息,请参考 strftime(3)
DATETIMEFMT
使用 DATETIMEFMT 格式打印日期时间。关于格式字符串语法的详细信息,请参考 strftime(3)
INT
指定register报告中日期列的宽度(以字符为单位)。
按天拆分跨越多天的时间日志条目的 register 报告。
按星期几对交易进行分组。--dow 的别名。
以借/贷格式显示 register 或 balance。如果将 --dcregisterbalance 命令一起使用,现在将获得单独的借方和贷方列。
STR
如果 ledger 是使用调试选项构建的,这将在运行期间提供额外数据。
指示 ledger 使用欧洲标准逗号作为小数分隔符来解析日记账,而不是句点。
INT
限制余额和登记报告中显示账户的深度。任何深度更大的账户都会在指定级别折叠到其父账户中。例如,使用 --depth 2 时,账户 将被折叠到 中进行显示。重要的是,这是一个显示谓词,意味着它只影响显示,不影响总额计算。
convert 命令相关。--rich-data 选项的同义词。
报告每个过账与平均值的偏差。仅在 register prices 报告中有意义。
EXPR (-d)
显示满足表达式 EXPR 的行。
EXPR
显示金额应用转换。这在计算完成后发生。
EXPR
显示总额应用转换。这在计算完成后发生。
按星期几对交易进行分组。--days-of-week 的别名。
通过运行名为getquote的脚本并期望该脚本返回ledger可理解的值,实现按需自动下载报价。发行版中提供了一个用 Perl 实现的getquote脚本示例实现。下载的报价价格随后会附加到价格数据库中,通常使用环境变量LEDGER_PRICE_DB指定。
显示所有计算的辅助日期。--aux-date的别名。
(-E)
在报告中包含空账户。
DATE (-e)
限制报告,使得DATE或之后的交易不被考虑。
equity命令相关。以登记报告形式显示当前账户余额。
按该期间内发生的第一笔和最后一笔过账日期报告期间的开始和结束。
"COMMODITY [, COMMODITY, ...]" (-X)
以给定的商品显示数值。如果给出多个商品,列出的商品中的数值将保持不变,其他商品将显示为它们可以转换到的第一个列出的商品。
FILE (-f)
FILE读取日记账数据。
INT
打印前INT个条目。--last INT的反向操作。--head的别名。
强制在余额报告中使用账户的全名。余额报告将不使用缩进树形结构。
即使 TTY 不支持,也输出 TTY 颜色代码。对于无法正确通告其功能的 TTY 很有用。
强制ledger对其输出进行分页。
EXPR
VEXPR为真时继续预测。--forecast的别名。
INT
最多预测未来INT年。
FMT (-F)
使用给定的格式字符串FMT打印输出。
(-G)
报告有价格历史的商品的净收益或损失。
在通常不希望包含自动生成条目的情况下,在报告中包含自动生成的条目(如来自自动化交易的条目)。
EXPR
register报告中分组交易。EXPR可以是任何表达式,但最常见的是payee(收款人)或commodity(商品)。()函数在此处也很有用。
FMT
设置分组报告中分隔报告部分的标题格式。仅在使用--group-by EXPR的登记报告时有效。
ALGO
根据ALGO参数指定的哈希算法,将每笔交易的哈希值记录在Hash元数据值中。支持的算法包括sha512sha512_half,两者均使用 SHA512,但后者仅存储哈希值的前半部分。

如果明确提供了Hash元数据值且与应生成的值不匹配,则会报告错误。哈希值依赖于之前的条目,因此设置单个哈希值足以保证该条目之前整个历史记录的结构。

INT
打印前INT个条目。--tail INT的反向操作。--first的别名
打印此手册页。
立即而非延迟地执行计算。
FILE
文件作为 Python 模块导入。
FILE (-i)
在任何其他ledger文件之前读取FILE。此文件可能不包含任何过账记录,但可能包含选项设置。要在初始化文件中指定选项,请使用与命令行相同的语法,但将每个选项放在单独的行上。
STR
在计算中使用STR金额。如果您知道交易应有的金额,但实际交易的值不正确,可以使用元数据STR来指定预期金额。
DATEFMT
指定日记账条目的输入日期格式。
反转所有报告值的符号。
INT
仅报告最后INT个条目。--first INT的反向操作。仅在寄存器报告中有用。--tail的别名。
INT (-Z)
--price-exp的别名。
EXPR (-l)
限制计算中的过账记录。
FORMAT
指定 Lisp 输出中的日期格式。默认使用 Emacs Lisp 时间格式。其他选项包括‘seconds’(Unix 纪元秒数)或 strftime 格式字符串,如‘%Y-%m-%d’。
在余额报告中报告每种商品的购买日期。
在余额报告中报告附加到每种商品的标签。
在余额报告中报告每种商品的购买价格。
在余额报告中报告每种商品的购买日期和价格。
保留商品的唯一性,使其在报告期间不会合并而不打印批次注释。
(-V)
对所有商品使用最新的市场价值。
STR
在所有账户名称前添加STR前缀
STR
在寄存器报告中,使用给定标签STR的值作为交易的前缀。
INT
指定用于--meta TAG选项的 Meta 列的宽度。
(-M)
--period monthly 的简写形式。
别名会被完全忽略。
抑制任何彩色 TTY 输出。
在 TTY 输出时禁用分页器。
阻止 ledger 显示 <重估值> 条目。
不输出 "<调整>" 条目。请注意,这会导致运行总计经常无法正确累加!其主要用途是用于 --amount-data (-j) 和 --total-data (-J) 报告。
抑制组标题的输出。
在余额报告中抑制打印最终总计行。
日期
使用 DATE 作为当前日期。这会影响使用 --period--begin--end--current 来决定哪些日期属于过去或未来的输出。
EXPR
这是一个过账谓词,在执行某些转换(如定期收集)后应用。
显示此次 ledger 调用中生效的选项及其值和这些值的来源。
文件 (-o)
ledger 的输出重定向到 FILE
STR
使用 STR 作为分页器程序。
设置用于格式化收款人的值表达式。在register报告中,这可以防止第二个条目为每笔交易显示日期和收款人。
INT
将登记报告中用于收款人的列数设置为整数
先前未声明的账户、标签或商品将导致错误。
仅使用标记为待定的过账。
(-%)
计算余额报告中每个账户的百分比值。仅适用于具有单一商品的账户。
期间 (-p)
定义一个期间表达式,用于设置要记账的交易的时间段。对于 register 报告,仅显示满足期间表达式的交易。对于余额报告,仅将这些交易计入最终余额。
使用给定的值表达式对交易内的条目进行排序。
静默处理余额断言。
标签
围绕给定的 TAG 生成余额透视报告。
FMT
定义金额数据图的输出格式。
FMT
定义总计数据图的输出格式。
FMT
在输出的每一行前添加FMT
INT
在输出的每一行开头保留INT个空格。
(-I)
使用商品购买价格进行计算。
FILE
 
INT (-Z)
设置报价的预期新鲜度,单位为INT小时。也就是说,如果任何商品的最后已知报价超过此值,并且正在使用--download选项,则会再次查询互联网以获取更新的价格。否则,旧价格仍被视为足够新鲜。这是--leeway的别名。
FMT
设置prices报告的格式。
FMT
设置历史价格文件的预期格式。
显示所有计算的主要日期。这是--actual-dates的别名。
(-O)
报告商品总计(此为默认设置)。
--period quarterly的简写形式。
print报告中,使用与用户在数据文件中指定的完全相同的语法显示交易。不进行任何调整或解释。可用于小的清理工作,比如仅仅对齐金额。
(-R)
仅使用实际交易进行记账,忽略虚拟和自动交易。
使ledger尝试递归扩展别名,即尝试再次扩展先前扩展的结果,直到不再适用扩展为止。
FMT
定义register报告的输出格式。
(-r)
在登记报告中显示相关账户。这是交易的另一个
显示交易中的所有过账,类似于--related,但显示每笔交易的两个方面。
通过插入<Revalued>过账来报告手动报告中的价值差异。在使用--exchange (-X)或--market (-V)选项时隐含此功能。
仅显示<Revalued>过账。
将重估过账的总和显示为运行总计,用于在损益报告中显示未实现资本。
在使用convert命令从 CSV 文件生成账本交易时,添加 CSV、Imported 和 UUID 元数据。
INT
generate命令设置随机种子为INT。作为开发测试的一部分使用。
FILE
执行ledger脚本。
EXPR (-S)
根据值表达式EXPR对登记报告进行排序。
使用给定的值表达式对交易内的条目进行排序。
STR
在使用--weekly选项时,使用STR作为一周的特定起始日。STR可以是日期名称、其缩写如"Mon",或从周日开始编号的星期几数字(0 表示周日)。
对所有账户和商品进行排序。
先前未声明的账户、标签或商品将导致警告。
(-s)
将 register 报告为单个小计。
INT
仅报告最后 INT 条条目。仅在登记报告中有用。是 --last INT 的别名
以小时和分钟为单位显示基于秒的商品值。因此 8100 秒将显示为 2:15h 而不是 2.25h。
balance 报告中添加两列,显示时间日志条目的最早签到和签出时间。
EXPR (-T)
定义一个用于计算报告中总计的值表达式。
(-J)
仅显示日期和总计,以便为绘图格式化输出。
INT
设置 register 报告中总计字段的宽度。
INT
启用跟踪。整数 指定所需的跟踪级别。
STR
指示当列内容超出其宽度时应如何进行截断。STR 的有效参数为 leading(前导)、middle(中间)和 trailing(尾随)。默认方式比这三种都更智能,因为它考虑了账户名称中的子名称(该样式称为 "abbreviate")。
仅显示未预算的记账条目。
(-U)
在计算和报告中仅使用未清算交易。
在资产负债报告中显示生成的未实现损益账户。
允许用户指定用于未实现收益的账户名称。默认为 Equity:Unrealized Gains(权益:未实现收益)。通常在用户的初始化文件中设置以更改默认值。
允许用户指定用于未实现损失的账户名称。默认为 Equity:Unrealized Losses(权益:未实现损失)。通常在用户的初始化文件中设置以更改默认值。
执行所有计算时不进行舍入,并以全精度显示结果。
tags 命令结合使用时,显示每个标签使用的值。
EXPR
设置全局值表达式注解。
打印关于 ledger 执行的详细信息。
在运行时启用额外的断言。这会导致显著的速度下降。与 --debug CODE 结合使用时,ledger 将生成内存跟踪信息。
验证每个构造的对象是否被正确析构。这仅用于调试目的。
打印版本信息并退出。
(-W)
--period weekly 的简写形式。
(-w)
假定为 132 列而不是 TTY 宽度。
(-Y)
--period yearly 的简写形式。

当您不确定命令或选项将如何工作时,预命令非常有用。预命令与常规命令的区别在于,预命令完全忽略日记数据文件,也不读取用户的初始化文件。

/ query
评估给定参数并报告ledger如何根据以下模型交易进行解释:
2004/05/27 书店 ; 此注释适用于所有过账。 :SecondTag: 支出:书籍 20 本书 @ $10 ; 元数据: 某值 ; 类型:: $100 + $200 ; :ExampleTag: ; 以下是描述该过账的注释。 负债:万事达卡 $-200.00
针对模型交易评估给定的值表达式。
打印ledger如何使用给定格式描述并将其应用于模型交易的详细信息。
/ expr
打印ledger如何使用给定值表达式描述并将其应用于模型交易的详细信息。
根据种子随机生成语法有效的ledger数据。由 GenerateTests 框架用于开发测试。
评估给定期间并报告ledger如何解释它。
显示xact命令生成的插入模板。这是一个调试命令。

报告查询的语法可能有些复杂。它是一系列查询项,项之间使用隐式的 OR 运算符。接受以下术语:

正则表达式
裸字符串被视为匹配完整账户名称的正则表达式(PCRE)。因此,要报告所有资产和负债的当前余额,您可以使用:

ledger bal asset liab
regex (@regex)
查询收款人,而不是账户。
regex (%regex)
查询标签。
regex (=regex)
查询在项目注释中找到的任何内容。
regex (#regex)
查询交易的可选代码(可以是用户希望的任何字符串)。
术语 and 术语
查询术语通过隐式的 OR 运算符连接。您可以使用and关键字将其更改为 AND。例如,要显示在 Shakee's Pizza 发生的食品支出,您可以说:

ledger reg food and @Shakee
术语 术语
当您希望更明确时,请使用 OR 运算符。
 
术语
反转后续术语的逻辑含义。这可以与括号结合使用以产生很好的效果:

ledger reg food and @Shakee and not dining
( term )
如果您希望混合使用 OR 和 AND 运算符,通常建议用括号将逻辑单元括起来。注意:由于某些 shell 对括号的解释方式,您应该始终对它们进行转义:

ledger bal \( assets or liab \) and not food

(value)
返回给定的绝对值。
返回条目的账户。
返回基础账户,即最后一个账户分隔符 ':' 之后的所有内容。
如果交易是真实的(即不是自动化或虚拟交易),则返回 true,否则返回 false。
返回条目的金额。
根据--amount选项返回条目的计算金额。
(value, color, bool)
将给定渲染为字符串,如果bool为 true,则应用适当的 ANSI 转义码以指定颜色显示。它通常会检查--color选项的值,例如:
ansify_if(amount, blue, options.color)
条目开始的行号。
条目开始的字符位置。
(value)
返回朝向 +∞ 的下一个整数。
如果条目已清算,则返回 true,否则返回 false。
返回交易代码,即日期后括号内的字符串。
(value)
返回的商品类型,或者当未指定时返回条目金额的商品类型。
返回过账的日期。
条目结束的行号。
条目结束的字符位置。
(value)
返回朝向 -∞ 的下一个整数。
条目来源的ledger数据文件的名称。
format(string)
字符串作为格式进行评估,就像--format选项一样。
(date, format)
使用格式日期作为字符串返回。有关格式字符串的详细信息,请参阅strftime(3)
(datetime, format)
使用format格式将datetime作为字符串返回。有关格式字符串的详细信息,请参阅strftime(3)
(seq, index)
seq中返回index处的值。内部用于构建不同的报告。
(tag)
如果帖子具有名为tag的元数据,则返回 true,否则返回 false。
(tag)
如果帖子具有名为tag的元数据,则返回 true,否则返回 false。
(value)
如果value是一个序列,则返回 true。内部使用。
(value)
中的所有换行符替换为\n
(value, first_width, latter_width, right_justify, colorize)
对表示value的字符串进行右对齐或左对齐。首行的字段宽度由first_width指定。后续行的宽度由latter_width指定。如果latter_width为-1,则所有行都使用first_width。如果right_justify为 true,则字段在字段宽度内右对齐。如果为 false,则字段左对齐并填充至字段的完整宽度。如果colorize为 true,则 ledger 将遵循颜色设置。
market(value, datetime)
返回valuedatetime时的价格。请注意,datetime必须用方括号括起来才能正确解析,例如[2012/03/23]。
meta(name)
返回名为name的元数据的值。
返回帖子的注释。
返回当前日期时间。
一个变量,允许使用长选项名称访问给定命令行选项的值,例如,要查看是否给出了--daily-D),请使用
返回帖子的收款人。
percent(value_a, value_b)
返回value_a相对于value_b(作为 100%)的百分比。
如果帖子标记为待处理,则返回 true,否则返回 false。
percent(value_a, value_b)
返回value_a相对于value_b的百分比。
print(value)
打印到标准输出。内部用于调试。
quantity()
对于具有单位成本的值,返回 的数量。
(表达式)
用双引号包围表达式
(表达式)
用双引号包围表达式,符合 RFC 4180 标准。
如果交易是真实的(即不是自动化或虚拟交易),则返回 true,否则返回 false。
(, n)
返回 四舍五入到 n 位数字。不影响格式化。
如果传递给--bold-if的表达式计算结果为真,则返回真。仅供内部使用!
()
使用各种转换(如四舍五入、去除值注释等)清理
()
value 中去除值注解。
tag(名称)
返回名为名称的标签的值。
()
转换为金额。仅供内部使用!
<极速 id="translate-id-0">to_balance()
转换为余额。仅供内部使用!
()
转换为布尔值。仅供内部使用!
()
转换为日期。仅供内部使用!
()
值极速转换为日期时间。仅供内部使用!
()
返回 value 的整数值。
()
转换为掩码。仅供内部使用!
()
转换为序列。仅供内部使用!
()
value 转换为字符串。
返回今天的日期。
返回过账的总金额。
根据 --total 选项返回计算后的过账总金额。
(value)
去除value的首尾空白字符。
(string, total_len, account_len)
string截断至total_len长度,确保每个账户至少为account_len长度。
如果交易是虚拟的(例如自动交易),则返回 true,否则返回 false。
()
返回具有平均价格的批次。
()
清除商品定价信息。
(commodity)
返回给定商品的价格。
(amount)
格式化金额以供显示。
(total)
格式化总计以供显示。
(posting)
返回 posting 的批次日期。
(posting)
返回 posting 的批次价格。
(posting)
返回 posting 的批次标签。
(amount)
固定金额的精度。
(amount)
将金额四舍五入到标准精度。
(amount)
返回金额的四舍五入版本。
(commodity, price)
设置商品的价格。
(amount)
返回顶级金额。
unround(amount)
移除金额的舍入。
(amount)
返回金额的未舍入版本。

除了常规的报告命令外,ledger 还接受几个调试命令:

[report-query]
显示 ledger 如何解析给定 report-query 的完整分析。如果您想了解报告查询如何转换为值表达式,这很有用。
[value-expression]
评估给定的 value-expression 并打印结果。有关值表达式的更多信息,请参阅 表达式 部分。
[format-string]
显示 format-string 如何被解析的分析结果,以及应用于示例交易时的外观。有关格式字符串的更多信息,请参阅 格式 部分。
生成 50 个随机组合但有效的ledger交易记录。
[value-expression]
解析给定的value-expression并显示表达式树的分析结果及其求值结果。有关值表达式的更多信息,请参阅EXPRESSIONS章节。
[file]
调用 Python 解释器读取给定的file。特殊之处在于ledger模块是内置的,不是从磁盘读取的,因此不需要在任何地方安装ledger,也不需要构建共享库变体。
立即重新加载当前会话的所有数据文件。只能在 REPL 中使用。
[draft-template]
显示有关draft-template如何被解析的信息。请参阅DRAFTS章节。

如果选项具有长名称,则ledger的每个选项都可以使用环境变量进行设置。例如,设置环境变量LEDGER_DATE_FORMAT="%d.%m.%Y"的效果与在命令行中指定--date-format '%d.%m.%Y'相同。但是,命令行上的选项始终优先于环境变量设置。

$XDG_CONFIG_HOME/ledger/ledgerrc
 
~/.config/ledger/ledgerrc
 
~/.ledgerrc
您的个人ledger初始化文件。

beancount(1), hledger(1)

ledger的完整文档以 Texinfo 手册形式维护。如果您的系统安装了info程序,命令

info ledger3
应该可以让您访问完整手册。

John Wiegley ⟨[email protected]⟩

2023 年 12 月 13 日 Nixpkgs