Bashを使用してすべてのトランザクションを記録する方法

Bashを使用してすべてのトランザクションを記録する方法

デビット、クレジット、および引き出し取引を含むファイルがあります。各取引後の残高を記録するには、bashスクリプトが必要です。したがって、ファイルは次のようになります。

D:11/02/12:1000.50
C:11/03/12:300
W:11/05/12:95.50
D:11/10/12:125
C:11/20/12:265.50

ここで、D = 借方、C = 便、W = 引き出し

出力は次のようになります。

11/02/12 1000.50
11/03/12 700.50
11/05/12 605.00

など。で作成しましたが、awkどのように作成するのかわかりませんbash。どんな提案やサンプルでも大変感謝いたします。

ベストアンサー1

シンプルでスマートに保つ

#!/usr/bin/env bash
D_amt=0

[[ $# -eq 0 ]] && { echo -e "Usage\n\t $0 input_file"; exit 1; }

while IFS=':' read type Date amt
do
        case $type in
                D)      D_amt=$( echo $amt + $D_amt | bc ) 
                        echo $Date $D_amt && continue ;;

                C|W)    D_amt=$( echo $D_amt - $amt| bc) 
                        echo $Date $D_amt && continue ;;
        esac

done <$1

おすすめ記事