# alias-related tests # simple aliases # simple alias directive hledger -f- accounts <<< alias checking = assets:bank:checking 1/1 (checking:a) 1 >>> assets:bank:checking:a >>>=0 # simple alias matches whole account name components only hledger -f- accounts <<< alias a:b = A:B 1/1 (a:b:c) 1 ; should match this 1/1 (a:bb:d) 1 ; should not match this >>> A:B:c a:bb:d >>>=0 # a simple alias matching the whole account name works hledger -f- accounts <<< alias a:b = A:B 1/1 (a:b) 1 >>> A:B >>>=0 # regular expression aliases # regex alias directive hledger -f- accounts <<< alias /^(.+):bank:([^:]+):?(.*)/ = \1:\2 \3 1/1 (assets:bank:B:checking:a) 1 >>> assets:B checking:a >>>=0 # regex alias pattern is a case-insensitive regular expression # matching anywhere in the account name. All matching aliases are # applied to an account name in turn, most recently seen first. The # replacement can replace multiple matches within the account name. # The replacement pattern supports numeric backreferences. # hledger -f- print <<< alias /a/ = b 2011/01/01 A a 1 a a 2 c alias /A (.)/=\1 2011/01/01 A a 1 a a 2 c >>> 2011/01/01 b b 1 b b 2 c 2011/01/01 b 1 b 2 c >>>=0 # CLI # --alias command-line options are applied in the order written. # Spaces are allowed if quoted. # hledger -f- print --alias '/A (.)/=a' --alias /a/=b <<< 2011/01/01 a a 1 A a 2 c >>> 2011/01/01 b 1 b 2 c >>>=0 # alias options are applied after alias directives. # hledger -f- print --alias /a/=A --alias /B/=C --alias /B/=D --alias /C/=D <<< alias /^a/=B alias /^a/=E alias E=F 2011/01/01 [a:x] 1 [x:a:x] >>> 2011/01/01 [E:x] 1 [x:A:x] >>>2 >>>=0 # alias options hledger -f- balance --alias=cc=credit-card --alias=b=bank <<< 01/01 Opening balances (bank) 100 (credit-card) -10 01/02 expenses 5 cc 01/03 expenses 5 b 01/04 Credit card charge cc = 0 b 01/05 expenses 5 b = 75 >>> 75 bank 15 expenses -------------------- 90 >>>2 >>>=0 # query will search both origin and substitution in alias hledger -f- reg '^a$' '^b$' <<< alias a = b 2017/1/1 a 1 b -1 >>> 2017/01/01 b 1 1 b -1 0 >>>2 >>>=0