これは宿題ではありません。私はbashに初めてアクセスし、ロギングからいくつかのデータを収集しようとしています。
ファイルから行を読み込んでいます。すべての行は次のとおりです。
[info] 1 - 12-04 15:33:37.542 : Finished createWalletRandom, total time 9898ms
ミリ秒を分析する必要があります(最小、最大、平均を取得します)。私はそれを得ることができますが、数学が機能するために9898ms
それを削除する必要があります。ms
以下の行を試してください。何も変わりません。
MILLI_SECONDS=${RAW_MILLI_SECONDS%??}
次の操作を実行するとエラーが発生しますget_wallet_times.sh: line 23: -2: substring expression < 0
。
MILLI_SECONDS=${RAW_MILLI_SECONDS::-2}
これは私のコードです。
while read ONE_LINE;
do
echo $ONE_LINE
RAW_MILLI_SECONDS="$(cut -d' ' -f13 <<<"$ONE_LINE")"
echo $RAW_MILLI_SECONDS
MILLI_SECONDS=${RAW_MILLI_SECONDS::-2}
MILLI_SECONDS=${RAW_MILLI_SECONDS%??}
echo ${MILLI_SECONDS}
LINE_COUNT=$((LINE_COUNT+1))
FILE_SUM=$((FILE_SUM+MILLI_SECONDS))
done < logfile.txt
Mac固有のbash問題の場合に備えて、macOSにあります。他に必要なものがあれば教えてください。
ありがとうマット
ベストアンサー1
MacOSの実装に違いがあるかどうかはわかりませんが、bash
次のようにRegExpベースの文字列を変更してみてください。
MILLI_SECONDS=${RAW_MILLI_SECONDS/ms/}
ms
パターンを空の文字列に置き換えます。