Referencia rápida

Guía rápida de Ledger CLI

Guía completa de referencia para Ledger CLI: sintaxis de contabilidad por partida doble en texto plano, banderas, fechas auxiliares, aserciones de balance y filtros de consulta.

· Publicado

Ledger es una potente herramienta de línea de comandos para contabilidad por partida doble en texto plano. Al gestionar sus finanzas en archivos de texto legibles por humanos, Ledger le permite calcular balances, generar libros de registro, realizar seguimiento presupuestario y emitir informes financieros.


Conceptos fundamentales y primeros pasos

La ecuación de la contabilidad por partida doble

En Ledger, cada transacción consta de dos o más asientos cuya suma debe equilibrarse estrictamente a cero:

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

Assets:Checking          -$600.00   ; Asset decreases (credit)
Expenses:Rent             $600.00   ; Expense increases (debit)
---------------------------------
Saldo neto = $0.00

Comandos principales

Comando Forma completa Descripción
ledger bal ledger balance Calcula y muestra los saldos actuales en todas las cuentas
ledger reg ledger register Lista cronológicamente los asientos con saldos acumulados
ledger print ledger print Formatea e imprime entradas del libro contable
ledger csv ledger csv Exporta transacciones filtradas en formato CSV estándar
ledger payees ledger payees Lista todos los beneficiarios distintos registrados
ledger accounts ledger accounts Lista todas las cuentas y su estructura jerárquica

Especificación de sintaxis del Journal

Estructura básica de una transacción

2024/01/03 * (CODE#001) Landlord John ; tag:rent
    Expenses:Rent:Apartment       $600.00
    Assets:Checking:MainBank
  • Desglose de la línea de encabezado::
2024/01/03   *       (CODE#001)   Landlord John     ; tag:rent
^            ^       ^            ^                 ^
Date         State   Code/Check#  Payee/Description Comment & Tags
  • Deducción automática: Ledger deduce automáticamente el importe de un asiento para cuadrar la transacción.

Estados de la transacción

Bandera Estado Descripción y uso habitual
(None) No conciliado Transacciones nuevas aún no verificadas con extractos bancarios
! Pendiente Transacciones iniciadas pendientes de liquidación
* Conciliado Transacciones conciliadas y liquidadas en la cuenta bancaria

Fechas auxiliares

El signo igual permite separar la fecha de la transacción de la fecha de liquidación real:

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

Aserciones y asignaciones de balance

  • Aserción de balance (= $VALUE): valida que el saldo acumulado de la cuenta coincida exactamente.
  • Asignación de balance (= $VALUE): calcula la diferencia necesaria para ajustar el saldo.
; 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

Expresiones de período

Ledger proporciona filtros temporales en lenguaje natural mediante la opción -p o --period.

Syntax Structure

[INTERVAL] [BEGIN] [END]

Intervalos

Intervalo Significado
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"

Expresiones de consulta y filtros

Syntax Objetivo Ejemplo Descripción
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

Lógica booleana

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

Banderas de filtrado habituales

Bandera Opción Descripción
-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

Informes y exportación de datos

-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"

Ejemplos prácticos

# 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

Referencias

Temas relacionados