#!/bin/sh if [ $# -lt 3 ]; then echo "Usage: $0 csv-file account-type out-file" exit fi EM_FILE="$1" EM_TYPE="$2" EM_OUT="$3" sed -i 's/\"//g' $EM_FILE gawk -F '|' -v ETYPE="$EM_TYPE" 'BEGIN{ m = split("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec", d, "|") for (o = 1; o <= m; o++){ months[d[o]] = sprintf("%02d", o) } } { if (NR > 1 && $2 != "转账 (转入)") { OUT_TYPE = ""; OUT_VAL = $3; if ($2 == "转账 (转出)") { if (substr($1, 1, 13) == "转入账户 ") { OUT_TYPE = substr($1, 14); } printf "转账"; } else if ($3 > 0) { printf "收入"; } else { printf "支出"; } if ($3 < 0) { OUT_VAL = -OUT_VAL; } split($5, time, " "); date = time[3]" "months[time[2]]" "time[1]" 0 0 0" printf "\t"strftime("%Y-%m-%d", mktime(date)); if (length(OUT_TYPE) <= 0) { printf "\t"$2; } else { printf "\t"; } printf "\t"; printf "\t"ETYPE; printf "\t"OUT_TYPE; printf "\t"OUT_VAL; printf "\t本人"; if (length(OUT_TYPE) <= 0) { printf "\t"$1; } else { printf "\t"; } printf "\t"; printf "\t"$6"\n"; } }' $EM_FILE > $EM_OUT