| LEDGER(1) | 通用命令手册 | LEDGER(1) |
ledger — 命令行复式记账报表工具
ledger |
[选项] [命令] [参数] |
ledger 是一款基于复式记账的强大性和完整性的命令行会计工具。它仅是一个报表工具,这意味着它从不修改您的数据文件,但提供了大量报表选项以及多种自定义方式以满足您的需求。
ledger 接受多个顶级命令,每个命令生成不同类型的基报表。大多数命令接受 报表查询 参数,以确定应报告的内容。要了解 报表查询 的语法,请参阅 查询 部分。在最基本的形式中,只需指定一个或多个字符串即可生成包含这些字符串的所有账户的报表。
如果未给出命令,ledger 将进入 REPL(读取-求值-打印循环)或命令循环,允许在同一数据集上执行多个命令而无需重新解析。
以下是接受的报表命令的完整列表:
accounts [报表查询]balance [报表查询]--basis (-B)--empty (-E)--flat--no-total同义词 bal 和 b 也被接受。
budget [报表查询]cleared [report-query]commodities [report-query]转换ledger交易记录。csv [report-query]entry [entry-template]ledger交易。关于草稿模板和使用此命令快速创建新交易的更多信息,请参阅ENTRIES章节。同义词xact也可接受。
emacs [query]ledger的报告数据。equity [report-query]Equity:Opening Balances的特殊账户中平衡与report-query匹配的账户的当前总额。此报告的目的是结清前一年的账目,同时使用这些权益记账项来结转这些余额。payees [report-query]pricemapledger文件中商品关系的文件。prices [report-query]pricedb [report-query]print [report-query]ledger文件中提取子集以传输到其他文件。push [options]poppush推送的选项设置。register [report-query]--average (-A)--current (-c)--exchange "商品 [, 商品, ...]" (-X)register报表是一个历史价值报表。对于当前价值,可能更倾向于使用balance报表。--gain (-G)--head 数量--historical (-H)--market (-V)--exchange选项。--period 时间段 (-p)--sort 值表达式 (-S)ledger reg --sort 'date, amount'ledger reg --sort '-date'--tail 数量--uncleared (-U)还有几个分组选项可能很有用:
--by-payee (-P 极)--daily (-D)--weekly (-W)极 dt --start-of-week 天--monthly (-M)--quarterly--yearly (-Y)--days-of-week--subtotal (-s)balance报表显示的总计非常相似。同义词reg和r也被接受。
select [sql-query]ledger select date,amount from posts where account=~/Income/source(来源)ledger将返回成功状态。stats [report-query]xml [report-query]--abbrev-len
INT--account
EXPR--account "'Personal'"会在每个账户前添加Personal:,而--account "tag('VAT')"会在balance或register报告中每个账户前添加 VAT 标签的值。--account-width
INTregister 报告中账户列的宽度设置为 INT 个字符。--actual (-L)--add-budget--align-intervals--amount EXPR (-t)--amount EXPR可以对记账条目进行任意转换。--amount-data (-j)--amount-width
INTregister 报告中金额列的字符宽度。--anon--ansi--color的别名--args-onlyledger 运行的初始化文件和环境变量。--auto-matchconvert 命令从 CSV 文件生成账本交易时,自动匹配账本日记中的账户。--aux-date--effective 的别名--average (-A)--average-lot-prices--balance-format
FMTbalance 报告的格式。--base--basis (-B)--cost 的别名--begin DATE (-b)--bold-if
EXPR--budgetregister 报告中,这会显示预算中的交易;在余额报告中,这会显示预算中的账户。--budget-format
FMTbudget 报告的格式。--by-payee (-P)--check-payees--cleared (-C)--cleared-format
FMTcleared 报告的格式--collapse (-n)--collapse-if-zero--color--ansi 的别名--columns
INTregister 报告宽度为 INT 个字符。默认情况下,ledger 将使用终端中所有可用的列。--cost--basis 的别名。--countledger 在附加到 commodities、accounts 或 payees 命令时报告项目数量。--csv-format
FMTcsv 报告。--current (-c)--limit 'date <= today' 的简写形式。--daily (-D)--period daily 的简写形式。--date
EXPR--date-format DATEFMT (-y)--datetime-format
DATETIMEFMT--date-width
INTregister报告中日期列的宽度(以字符为单位)。--day-breakregister 报告。--days-of-week--dow 的别名。--dc--dc 与 register 或 balance 命令一起使用,现在将获得单独的借方和贷方列。--debug
STRledger 是使用调试选项构建的,这将在运行期间提供额外数据。--decimal-commaledger 使用欧洲标准逗号作为小数分隔符来解析日记账,而不是句点。--depth
INT--depth 2 时,账户 Expenses:Entertainment:Dining 将被折叠到 Expenses:Entertainment 中进行显示。重要的是,这是一个显示谓词,意味着它只影响显示,不影响总额计算。--detailconvert 命令相关。--rich-data 选项的同义词。--deviationregister 和 prices 报告中有意义。--display EXPR (-d)--display-amount
EXPR--display-total
EXPR--dow--days-of-week 的别名。--downloadledger可理解的值,实现按需自动下载报价。发行版中提供了一个用 Perl 实现的getquote脚本示例实现。下载的报价价格随后会附加到价格数据库中,通常使用环境变量LEDGER_PRICE_DB指定。--effective--aux-date的别名。--empty (-E)--end DATE (-e)--equityequity命令相关。以登记报告形式显示当前账户余额。--exact--exchange "COMMODITY [, COMMODITY, ...]" (-X)--file FILE (-f)--first
INT--last INT的反向操作。--head的别名。--flat--force-color--force-pagerledger对其输出进行分页。--forecast-while
EXPR--forecast的别名。--forecast-years
INT--format FMT (-F)--gain (-G)--generated--group-by
EXPRregister报告中分组交易。EXPR可以是任何表达式,但最常见的是payee(收款人)或commodity(商品)。tag()函数在此处也很有用。--group-title-format
FMT--group-by EXPR的登记报告时有效。--hashes
ALGO如果明确提供了Hash元数据值且与应生成的值不匹配,则会报告错误。哈希值依赖于之前的条目,因此设置单个哈希值足以保证该条目之前整个历史记录的结构。
--head
INT--tail INT的反向操作。--first的别名--help--immediate--import
FILE--init-file FILE (-i)ledger文件之前读取FILE。此文件可能不包含任何过账记录,但可能包含选项设置。要在初始化文件中指定选项,请使用与命令行相同的语法,但将每个选项放在单独的行上。--inject
STR--input-date-format
DATEFMT--invert--last INT。--first INT的反向操作。仅在寄存器报告中有用。--tail的别名。--leeway INT (-Z)--price-exp的别名。--limit EXPR (-l)--lisp-date-format
FORMATseconds’(Unix 纪元秒数)或 strftime 格式字符串,如‘%Y-%m-%d’。--lot-dates--lot-notes--lot-prices--lots--lots-actual--market (-V)--master-account
STR--meta
STR--meta-width
INT--meta TAG选项的 Meta 列的宽度。--monthly (-M)--period monthly 的简写形式。--no-aliases--no-color--no-pager--no-revaluedledger 显示 <重估值> 条目。--no-rounding<调整>" 条目。请注意,这会导致运行总计经常无法正确累加!其主要用途是用于 --amount-data (-j) 和 --total-data (-J) 报告。--no-titles--no-total--now
日期--period、--begin、--end 或 --current 来决定哪些日期属于过去或未来的输出。--only
EXPR--optionsledger 调用中生效的选项及其值和这些值的来源。--output 文件 (-o)ledger 的输出重定向到 FILE。--pager
STR--payeeregister报告中,这可以防止第二个条目为每笔交易显示日期和收款人。--payee-width
INT--pedantic--pending--percent (-%)--period 期间 (-p)register 报告,仅显示满足期间表达式的交易。对于余额报告,仅将这些交易计入最终余额。--period-sort--permissive--pivot
标签--plot-amount-format
FMT--plot-total-format
FMT--prepend-format
FMT--prepend-width
INT--price (-I)--price-db
FILE--price-exp INT (-Z)--download选项,则会再次查询互联网以获取更新的价格。否则,旧价格仍被视为足够新鲜。这是--leeway的别名。--prices-format
FMTprices报告的格式。--pricedb-format
FMT--primary-date--actual-dates的别名。--quantity (-O)--quarterly--period quarterly的简写形式。--rawprint报告中,使用与用户在数据文件中指定的完全相同的语法显示交易。不进行任何调整或解释。可用于小的清理工作,比如仅仅对齐金额。--real (-R)--recursive-aliasesledger尝试递归扩展别名,即尝试再次扩展先前扩展的结果,直到不再适用扩展为止。--register-format
FMTregister报告的输出格式。--related,但显示每笔交易的两个方面。--revalued--exchange (-X)或--market (-V)选项时隐含此功能。--revalued-only--revalued-total--rich-dataconvert命令从 CSV 文件生成账本交易时,添加 CSV、Imported 和 UUID 元数据。--seed
INTgenerate命令设置随机种子为INT。作为开发测试的一部分使用。--script
FILEledger脚本。--sort EXPR (-S)--sort-xacts--start-of-week
STR--weekly选项时,使用STR作为一周的特定起始日。STR可以是日期名称、其缩写如"Mon",或从周日开始编号的星期几数字(0 表示周日)。--sort-all--strict--subtotal (-s)--tail
INT--last INT 的别名--time-colon--time-reportbalance 报告中添加两列,显示时间日志条目的最早签到和签出时间。--total EXPR (-T)--total-data (-J)--total-width
INT--trace
INT--truncate
STR--unbudgeted--uncleared (-U)--unrealized--unrealized-gains--unrealized-losses--unround--valuestags 命令结合使用时,显示每个标签使用的值。--value-expr
EXPR--verboseledger 执行的详细信息。--verify--debug CODE 结合使用时,ledger 将生成内存跟踪信息。--verify-memory--version--weekly (-W)--period weekly 的简写形式。--wide (-w)--yearly (-Y)--period yearly 的简写形式。当您不确定命令或选项将如何工作时,预命令非常有用。预命令与常规命令的区别在于,预命令完全忽略日记数据文件,也不读取用户的初始化文件。
args
/ queryledger如何根据以下模型交易进行解释:2004/05/27 书店 ; 此注释适用于所有过账。 :SecondTag: 支出:书籍 20 本书 @ $10 ; 元数据: 某值 ; 类型:: $100 + $200 ; :ExampleTag: ; 以下是描述该过账的注释。 负债:万事达卡 $-200.00
评估formatledger如何使用给定格式描述并将其应用于模型交易的详细信息。解析
/ exprledger如何使用给定值表达式描述并将其应用于模型交易的详细信息。generateledger数据。由 GenerateTests 框架用于开发测试。期间ledger如何解释它。templatexact命令生成的插入模板。这是一个调试命令。报告查询的语法可能有些复杂。它是一系列查询项,项之间使用隐式的 OR 运算符。接受以下术语:
ledger bal asset liabpayee regex (@regex)tag regex (%regex)note regex (=regex)code regex (#regex)and
术语and关键字将其更改为 AND。例如,要显示在 Shakee's Pizza 发生的食品支出,您可以说: ledger reg food and @Shakee或
术语显示非
术语ledger reg food and @Shakee and not diningledger bal \( assets or liab \) and not foodabs(value)--amount选项返回条目的计算金额。ansify_if(value, color, bool)--color选项的值,例如:ansify_if(amount, blue, options.color)ceiling(value)commodity(value)floor(value)ledger数据文件的名称。format(string)--format选项一样。format_date(date, format)format_datetime(datetime, format)get_at(seq, index)has_meta(tag)has_tag(tag)is_seq(value)join(value)\n。justify(value, first_width, latter_width, right_justify, colorize)market(value, datetime)meta(name)--daily(-D),请使用option.daily。percent(value_a, value_b)percent(value_a, value_b)print(value)quantity(值)quoted(表达式)quoted_rfc(表达式)roundto(值, n)--bold-if的表达式计算结果为真,则返回真。仅供内部使用!scrub(值)strip(值)tag(名称)to_amount(值)to_balance(值)to_boolean(值)to_date(值)to_datetime(值)to_int(值)to_mask(值)to_sequence(值)to_string(值)--total 选项返回计算后的过账总金额。trim(value)truncated(string, total_len, account_len)averaged_lots()clear_commodity()commodity_price(commodity)display_amount(amount)display_total(total)lot_date(posting)lot_price(posting)lot_tag(posting)nail_down(amount)rounded(amount)set_commodity_price(commodity, price)top_amount(amount)unround(amount)unrounded(amount)除了常规的报告命令外,ledger 还接受几个调试命令:
args [report-query]ledger 如何解析给定 report-query 的完整分析。如果您想了解报告查询如何转换为值表达式,这很有用。eval [value-expression]format [format-string]generateledger交易记录。parse [value-expression]python [file]ledger模块是内置的,不是从磁盘读取的,因此不需要在任何地方安装ledger,也不需要构建共享库变体。reloadtemplate [draft-template]如果选项具有长名称,则ledger的每个选项都可以使用环境变量进行设置。例如,设置环境变量LEDGER_DATE_FORMAT="%d.%m.%Y"的效果与在命令行中指定--date-format '%d.%m.%Y'相同。但是,命令行上的选项始终优先于环境变量设置。
ledger初始化文件。ledger的完整文档以 Texinfo 手册形式维护。如果您的系统安装了info程序,命令
info ledger3John Wiegley ⟨[email protected]⟩
| 2023 年 12 月 13 日 | Nixpkgs |