クイックリファレンス

Ledger CLI 早見表 (Cheat Sheet)

Ledger CLI によるプレーンテキスト複式簿記の完全リファレンスガイド:構文仕様、フラグ、補助日付、残高アサーション、期間表現、クエリフィルタリングを網羅。

· 公開日

Ledger は、プレーンテキスト形式で複式簿記を行うための強力なコマンドラインツールです。人間が読みやすいテキスト形式のジャーナルファイルを管理するだけで、残高の集計、取引明細の出力、予算管理、詳細な財務諸表の生成を瞬時に行えます。


基本概念とスタートアップ

複式簿記の基本等式

Ledger では、すべての取引(Transaction)における全仕訳(Posting)の貸借合計が厳密にゼロになる必要があります:

$$\text{Assets} + \text{Expenses} = \text{Liabilities} + \text{Equity} + \text{Income}$$

Assets:Checking          -$600.00   ; Asset decreases (credit)
Expenses:Rent             $600.00   ; Expense increases (debit)
---------------------------------
合計残高 = $0.00

コアコマンド概要

コマンド 完全な形式 説明
ledger bal ledger balance 各勘定科目の現在の残高を計算して表示
ledger reg ledger register 取引履歴と累計残高を時系列で一覧表示
ledger print ledger print ジャーナルの生データをフォーマットして出力
ledger csv ledger csv 抽出した取引を標準的な CSV 形式で出力
ledger payees ledger payees ジャーナルに含まれるすべての支払先・受取人を一覧表示
ledger accounts ledger accounts 定義されているすべての勘定科目と階層を一覧表示

ジャーナル(Journal)構文仕様

基本的な取引構造

2024/01/03 * (CODE#001) Landlord John ; tag:rent
    Expenses:Rent:Apartment       $600.00
    Assets:Checking:MainBank
  • ヘッダー行の内訳::
2024/01/03   *       (CODE#001)   Landlord John     ; tag:rent
^            ^       ^            ^                 ^
Date         State   Code/Check#  Payee/Description Comment & Tags
  • 自動補完:貸借合計が一致するよう、Ledger は1つの仕訳金額を自動的に算出できます。

取引ステータスフラグ

フラグ 状態 説明と一般的な用途
(None) 未清算 銀行明細とまだ照合されていない新しい取引
! 保留中 決済待ちの取引(クレジットカードの承認待ちなど)
* 照合済 銀行口座やカード明細と照合済みの確定取引

補助日付 (Auxiliary Dates)

等号を使用することで、取引発生日と実際の決済日を区別できます:

; Format: EventDate=SettlementDate
2024/01/01=2024/01/15 Consulting Client A
    Assets:AccountsReceivable    $1,000.00
    Income:Consulting

残高アサーションと割り当て

  • 残高アサーション (= $VALUE):この仕訳後の累積残高が指定額と一致することを検証します。
  • 残高割り当て (= $VALUE):指定の残高になるように差額を自動計算して調整します。
; 1. Balance Assertion
2024/01/01 * Restaurant
    Expenses:Food:Dinner          $20.00
    Assets:Cash                  -$20.00 = $500.00

; 2. Balance Assignment
2024/01/01 * Opening Balance
    Assets:Cash                 = $500.00
    Equity:OpeningBalances

Account Declarations & Validation

account Expenses:Food
    note Dining and grocery expenses
    alias food
    payee ^(KFC|McDonalds|Starbucks)$
    check commodity == "$"
    assert commodity == "$"
    default

account Assets:Cash
    alias cash

Commodities & Currencies

; 1. Per-unit cost (@ symbol)
2024/05/31 * Farmers Market
    Expenses:Food:Apples         10 APPLE @ $1.50
    Assets:Checking             -$15.00

; 2. Total cost (@@ symbol)
2024/06/01 * Brokerage
    Assets:Investments:AAPL      5 AAPL @@ $950.00
    Assets:Checking             -$950.00

; 3. Explicit currency price history
P 2024/06/01 00:00:00 EUR $1.0850

Directives

; Global default currency
D $1,000.00

; Set default year
Y2024

Including Sub-Journals

include accounts.journal
include 2023.journal
include 2024.journal

account Business
include company_expenses.journal
end

Budgeting

~ Monthly
    Expenses:Rent               $600.00
    Expenses:Food               $400.00
    Expenses:Utilities          $100.00
    Expenses                    $100.00
    Assets

~ Yearly
    Expenses:Insurance        $1,200.00
    Assets
  • ledger bal --budget Expenses
  • ledger bal --unbudgeted Expenses

期間表現 (Period Expressions)

Ledger では -p または --period オプションで自然言語による期間指定が可能です。

Syntax Structure

[INTERVAL] [BEGIN] [END]

期間の間隔

間隔 意味
every day / daily Daily
every week / weekly Weekly
biweekly Every two weeks
every month / monthly Monthly
every quarter / quarterly Quarterly
every year / yearly Yearly
every N days/weeks/months Custom interval

Period Filtering Examples

ledger reg -p "since last month"
ledger reg Expenses -p "every month from 2024 to 2024/12/31" -M
ledger bal -p "from 2024/01/01 until this month"
ledger bal Expenses:Food -p "last quarter"

クエリ式とフィルタリング

Syntax 対象 例 説明
Account Account name ledger bal Assets Substring/regex match
^Account Root account ledger bal ^Expenses Accounts starting with Expenses
@Payee Payee name ledger reg @Starbucks Match payee field
%Tag Tag presence ledger reg %reimburse Match tagged transactions
%Tag=Value Tag value ledger reg %project=alpha Match tag key-value pairs
=Note Memo note ledger reg =taxi Match memo text
#Code Transaction code ledger reg #1042 Match check or order number

論理演算

ledger reg Expenses:Food and @Starbucks and not dining
ledger bal Rent or Transportation
ledger bal Expenses and not \( Drinks or Food \)

主要なフィルターオプション

フラグ オプション 説明
-b DATE --begin DATE Filter transactions on or after date
-e DATE --end DATE Filter transactions before date
-C --cleared Only cleared transactions (*)
-U --uncleared Only uncleared transactions
--pending --pending Only pending transactions (!)
-R --real Exclude virtual postings
-r --related Show the offsetting balancing postings

レポートとデータ出力

-s, --subtotal         # Calculate subtotals for grouped postings
-n, --collapse         # Collapse multi-line postings into one line
--flat                 # Render account tree as a flat list
--tail N               # Limit output to last N lines
--invert               # Invert numerical signs (display expenses as positive)
-X CUR, --exchange CUR # Convert foreign holdings to specified currency at latest rate
# Export all entries to CSV
ledger csv > report.csv

# Export this month's dining expenses
ledger csv Expenses:Food -p "this month"

実践例

# Current assets vs liabilities
ledger bal ^Assets ^Liabilities

# Net revenue this month with positive expenses
ledger bal ^Expenses ^Income -p "this month" --invert

# Top 10 largest expenses
ledger reg Expenses -S amount --tail 10

# Monthly average daily expenses
ledger reg Expenses -M -n --average

リファレンス

関連テーマ