入完整教程)
從 Ledger/Hledger 遷移到 Transityledger2transity 導(dǎo)入完整教程【免費下載鏈接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 項目地址: https://gitcode.com/gh_mirrors/tr/Transity如果你正在使用 Ledger 或 Hledger 這類傳統(tǒng)純文本記賬工具卻苦于復(fù)式記賬的借貸概念復(fù)雜、賬戶層級容易混亂那么 Transity 或許是你一直在等的未來記賬工具。本文是一份完整的Ledger/Hledger 遷移教程重點講解如何通過項目自帶的ledger2transity 導(dǎo)入腳本把已有的.journal數(shù)據(jù)一鍵導(dǎo)出為 CSV再轉(zhuǎn)換成 Transity 的 YAML 日記賬格式最終用transity balance等命令驗證遷移成果。全程無需手工重錄任何一筆交易跟著步驟走即可。為什么值得從 Ledger/Hledger 遷移到 Transity在開始Ledger 遷移之前先花一分鐘了解 Transity 的核心設(shè)計理念這決定了遷移后你的賬本會是什么樣以交易而非賬戶為核心不再需要糾結(jié) debit/credit、asset/liability每筆記錄只有清晰的from付款方和to收款方就像日常說話一樣自然。賬戶與實體分離錢包、銀行卡是物理賬戶同事、公司、超市是實體消費目的則用tags表達(dá)三者互不混淆?;?YAML 的日記賬格式純文本、可版本控制、可 diff、可腳本化數(shù)據(jù)永遠(yuǎn)屬于你自己。內(nèi)置安全校驗使用 BigInt 分?jǐn)?shù)避免浮點誤差還會自動核對交易與校驗余額是否匹配。這些特性讓 Transity 在可讀性和安全性上都比傳統(tǒng)記賬工具更勝一籌也是無數(shù)用戶選擇Hledger 數(shù)據(jù)遷移的根本原因。第一步安裝 Transity做好遷移前準(zhǔn)備Transity 是一個 Rust 程序安裝非常簡單一條命令即可完成cargo install transity安裝完成后在終端輸入transity即可查看全部命令手冊。遷移用到的關(guān)鍵命令包括balance余額查詢、transactions交易列表、transfers逐行轉(zhuǎn)賬明細(xì)、entries收支明細(xì)、gplot趨勢圖等后面會逐一用到。同時請確保你的系統(tǒng)里已經(jīng)安裝了 Ledger CLI因為ledger2transity 導(dǎo)入腳本底層正是調(diào)用ledger --csv-format來完成數(shù)據(jù)導(dǎo)出的。第二步用 ledger2transity 腳本導(dǎo)出 CSV這是整個ledger2transity 導(dǎo)入教程的核心步驟。項目自帶了一個名為ledger2transity.sh的 Bash 腳本位于倉庫根目錄用法如下./ledger2transity.sh examples/hledger.journal transactions.csv把examples/hledger.journal替換成你自己的賬本文件路徑即可。腳本會自動完成以下工作調(diào)用ledger --file讀取你的賬本按日期排序并輸出為 CSV自動處理交易備注為空的情況修正 CSV 中雙引號的轉(zhuǎn)義問題。導(dǎo)出的 CSV 包含 7 列date日期、idID、from付款方、to收款方、amount金額、note備注、tags標(biāo)簽。你可以先用cat transactions.csv快速檢查導(dǎo)出結(jié)果是否完整。第三步把 CSV 轉(zhuǎn)換為 Transity YAML 日記賬拿到 CSV 之后下一步就是把它轉(zhuǎn)換成 Transity 的 YAML 日記賬文件。你可以使用在線 CSV 轉(zhuǎn) YAML 工具也可以用任意腳本語言自行轉(zhuǎn)換。轉(zhuǎn)換的目標(biāo)格式如下owner: anna commodities: - id: € name: Euro entities: - id: anna accounts: - id: giro transactions: - title: Salary transfers: - utc: 2013-12-31 from: good-inc to: anna:giro amount: 500 €參考文件 examples/journal.yaml 里有完整的格式示例強(qiáng)烈建議轉(zhuǎn)換前先閱讀一遍確保字段名、縮進(jìn)完全對齊。第四步遷移后的數(shù)據(jù)清理3 個必踩的坑CSV 轉(zhuǎn)換出的 YAML 通常不能直接使用因為 Ledger 與 Transity 的數(shù)據(jù)模型存在差異。根據(jù)官方文檔Ledger/Hledger 遷移后必須手動處理以下 3 個問題合并相鄰條目Ledger 的每個 entry 只借貸一個賬戶而 Transity 的每筆交易必然涉及from和to兩個賬戶。對于支出基本做法是把第二條記錄的 Ledger 賬戶名復(fù)制到第一條記錄的from字段中。收入方向可能顛倒from和to取決于 payee 字段的用法收入類交易常常需要反轉(zhuǎn)方向。賬戶名變成標(biāo)簽Ledger 的賬戶名如expenses:food在 Transity 中會被解釋為tags而 Transity 的賬戶指的是物理賬戶如錢包、銀行卡。另外備注會被重復(fù)寫入 tags 字段需要按需清理。第五步驗證遷移成果用 balance 和 gplot 檢查數(shù)據(jù)清理完畢后就到了激動人心的驗證環(huán)節(jié)。用 Transity 自帶命令檢查遷移后的賬本transity balance journal.yaml transity transactions journal.yaml transity transfers journal.yamlbalance會輸出所有賬戶的余額transfers則以一轉(zhuǎn)賬一行的形式展示每筆資金流向。如果你想直觀看到資產(chǎn)變化趨勢還可以配合 gnuplot 生成累計余額曲線transity gplot-cumul journal.yaml | awk /^$/ || /(EOD|^set terminal)/ || /€/ | gnuplot | imgcat遷移前記得用 Ledger 導(dǎo)出一份余額快照遷移后與transity balance的結(jié)果逐項比對確保數(shù)據(jù)分毫不差。第六步設(shè)置賬戶層級分隔符遷移時你可能會發(fā)現(xiàn) Ledger 的賬戶名使用了:或/作為層級分隔符。Transity 默認(rèn)同時接受:和/并自動歸一化為/也就是說anna:giro與anna/giro等價。如果你想自定義分隔符只需在日記賬文件中添加config配置config: separator: |注意分隔符只能是一個字符且一旦顯式配置只有該字符會被當(dāng)作層級分隔符。遷移常見問題速查Q遷移后余額對不上怎么辦A優(yōu)先檢查收入類交易的from/to方向是否顛倒以及相鄰條目是否已正確合并。QCSV 里有亂碼或引號異常Aledger2transity 腳本已經(jīng)處理了的轉(zhuǎn)義若仍異常請檢查源賬本文件編碼是否為 UTF-8。Q我有很多個賬本文件怎么辦ATransity 支持多文件可分別轉(zhuǎn)換后再合并為同一份 YAML或按實體拆分維護(hù)。Q遷移后還想繼續(xù)用 Ledger 怎么辦ATransity 支持導(dǎo)出 (H)ledger 格式雙向切換完全可行??偨Y(jié)一次遷移永久受益通過這份ledger2transity 導(dǎo)入完整教程你已經(jīng)掌握了從Ledger/Hledger 遷移到 Transity的全部關(guān)鍵步驟安裝工具、導(dǎo)出 CSV、轉(zhuǎn)換 YAML、清理數(shù)據(jù)、驗證余額。整個過程不需要重新記賬歷史數(shù)據(jù)完整保留。接下來你可以在全新的 YAML 日記賬基礎(chǔ)上享受 Transity 帶來的直觀交易模型、安全的數(shù)值運算和便捷的趨勢可視化。祝你遷移順利記賬愉快【免費下載鏈接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 項目地址: https://gitcode.com/gh_mirrors/tr/Transity創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考