揮発性のメモ2

最近知った知識を さも昔から知ってた風にメモ書きしていく

bashで、数字の末尾4桁を取り出す

カウンターをインクリメントし、数値の末尾4桁を取り出す
桁が少ないときは 0 で埋める

12 ⇒ 0012
12345 ⇒ 2345

# 1インクリメント
((COUNT++))

# 後ろ4桁を取り出す
tmp=000$COUNT; NUM=${tmp: -4}

echo $NUM


おわり

インクリメント

今まではこう書いてたが、ちょっと無駄があった

COUNT=$((COUNT + 1))
4桁の取り出し

意図の分かりやすい書き方は

NUM=$(printf '%04d' $(($COUNT % 10000)))

ただ、これはサブプロセスが起動してしまうのでよくない

printf -v NUM '%04d' $(($COUNT % 10000))

これならよし

NUM=$(sed -E 's/.*(....)/\1/' <<< "000$COUNT")

sedはスマートさもないし全然ダメだった