シェルワンライナー #7
問題
与えられたテキストに対する税率の計算。
2019/10以前なら8%。それ以降ならば、8%と10%。商品名に*がついているのは8%。
1 20190901 ゼロカップ大関 10000 2 20190902 *キャベツ二郎 130 3 20191105 外食 13000 4 20191106 ストロングワン 13000 5 20191106 *ねるねるねるねる 30 6 20190912 外食 13000
回答
自分の回答
考えた段取り
- 2列目の先頭に *がついている
3列目 * 1.08
- 2列目の先頭に *がついている
3列目 * 1.10
- でまずは出力する
- その後、なんか変数設けて足し算する
- 2列目の先頭に *がついている
だめな回答
- あれ?答えが違うじゃん?と思ったら、20191001より前ならば税率を8%としないといけないっぽい。
cat kakeibo.txt | awk 'BEGIN{sum=0}{if($2 ~ /^\*/){sum += int($3*1.08)} else {sum+=int($3*1.10)}} END{print sum}'
- OKな回答
- もう一個日付で切り替える条件のif文をあたまにつけた。
cat kakeibo.txt | awk 'BEGIN{sum=0} {if($1>20191001){if($2 ~ /^\*/){sum += int($3*1.08)} else {sum+=int($3*1.10)}} else{sum += int($3*1.08)}} END{print sum}'
({}がどこに対応するかかなり分かりづらい…)
テキストの回答
#わかりやすさのために、パイプ毎に改行してます cat kakeibo.txt | awk '{if($1<20191001||$2 ~"^*"){print $0,1.08} else{print $0,1.1}}' | awk '{print int($3*$4)}' | numsum
- 思ったこと
補足
回答のところに書いたので特になし。