X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=ledgers%2Fiban_assign.awk;h=57ab62d53a469e0d71640a0934e2bbd9e6012736;hb=df20f046b4ff4e58a5b93ce152926325c7e15767;hp=090d950bbfe513f974f6e051c45fdbce6a112791;hpb=cbfa134047e26cde3814fc0a3036be78dcb5d2c7;p=confetti diff --git a/ledgers/iban_assign.awk b/ledgers/iban_assign.awk index 090d950..57ab62d 100755 --- a/ledgers/iban_assign.awk +++ b/ledgers/iban_assign.awk @@ -1,5 +1,7 @@ #!/bin/awk -f +function dbg( text ) { print text >>"/dev/stderr"; } + function STRING( inp ) { gsub(/\\/, "\\\\", inp); gsub(/\n/, "\\n", inp); @@ -41,19 +43,18 @@ BEGIN { /^BEGIN;:VCARD$/ { fn = n = id = iban = tmp = ""; } - /^UID;[^:]*:/ { uid = $0; sub(/^[^;]+;[^:]*:/, "", uid); } - /^FN;[^:]*:/ { fn = $0; sub(/^[^;]+;[^:]*:/, "", fn); } - /^N;[^:]*:/ { n = $0; sub(/^[^;]+;[^:]*:/, "", n); sub(/;.*$/, "", n); } -/^X-IBAN;[^:]*:/ { tmp = $0; sub(/^[^;]+;[^:]*:/, "", tmp); iban = iban ? iban " " tmp : tmp; } + /^UID;[^:]*:/ { uid = $0; sub(/^[^;]+;[^:]*:/, "", uid); } + /^FN;[^:]*:/ { fn = $0; sub(/^[^;]+;[^:]*:/, "", fn); } + /^N;[^:]*:/ { n = $0; sub(/^[^;]+;[^:]*:/, "", n); sub(/;.*$/, "", n); } +/^X-IBAN;[^:]*:/ { iban = $0; sub(/^[^;]+;[^:]*:/, "", iban); ibans[length(ibans)] = iban; } /^END;:VCARD$/ { uid_n[uid] = n; uid_fn[uid] = fn; uid_iban[uid] = iban; - split(iban, ibans, / /); - for (iban in ibans) iban_uid[iban] = iban_uid[iban] ? iban_uid[iban] " " uid : uid; - fn = n = uid = iban = tmp = ""; + for (iban in ibans) iban_uid[ibans[iban]] = iban_uid[ibans[iban]] ? iban_uid[ibans[iban]] " " uid : uid; + fn = n = uid = iban = tmp = ""; split("", ibans); } -strftime("%Y-%m-%d", $1, "UTC") == $2 && strftime("%Y-%m-%d", $3, "UTC") == $4 { ledger = 1; } +/^BEGIN:LEDGERS$/ { ledger = 1; } ledger && strftime("%Y-%m-%d", $2, "UTC") == $1 { if ($3 in iban_uid) { @@ -74,8 +75,8 @@ ledger && strftime("%Y-%m-%d", $2, "UTC") == $1 { END { for (iban in sure) { line = "sure " iban; - split(iban_uid[iban], uids, / /); - for (uid in uids) line = line " " STRING(uid "/" uid_fn[uid]); + split(sure[iban], uids, / /); + for (k in uids) line = line " " STRING(uids[k] "/" uid_fn[uids[k]]); print line; } for (iban in unsure) {