この文字列の数を増やす最も簡単な方法は何ですか01:02:99
?
予想出力:01:03:00
回答させていただきますが、sed
簡単ではないようです。
答え1
あなたが使用できるawk
。
$ echo 01:02:99 | awk -vINC_BY=1 -F: '{
$3 += INC_BY;
$2 += int( $3 / 100 );
$1 += int( $2 / 100 );
printf("%02d:%02d:%02d\n", $1, $2 % 100, $3 % 100);
}'
01:03:00
これは、ユーザーが1つを追加すると仮定します。 「INC_BY」を数値を増やす値に変更します。
使用されたsed
ものこれは良い考えではありません。。
答え2
これはbashで行うことができます...
まずそれを削除し、:
整数として処理してから1を加算します。前に0があるので、10進数を強制する必要があります。構文は次のようになります。
let x=10#$(echo $x | tr -d :)+1
printf
その後、いくつかのbash
算術を使用して再結合することができます:
。
printf %02d:%02d:%02d $((x/10000%100)) $((x/100%100)) $((x%100))
私たちはそれを1つにまとめることができます:例:
$ x=01:02:99
$ let x=10#$(echo $x | tr -d :)+1
$ x=$(printf %02d:%02d:%02d $((x/10000%100)) $((x/100%100)) $((x%100)))
$ echo $x
01:03:00