0
私は以下のような入力ファイルを持っています。bashのループ反復との時間差を取得する
975700 18:32:32.956
975700 18:32:32.971
975700 18:32:33.018
975701 18:32:32.987
975702 18:32:32.987
975702 18:32:33.003
975702 18:32:33.034
私は同じID番号の時差を取っておきたいと思います。これまでのところ、私は以下のコードを思い付くことができます。
while read jobnum time
do
if [[ "$prevjobnum" != "$jobnum" ]] && [[ `grep $jobnum $joblst|wc -l` -eq 1 ]]
then
echo "$jobnum incomplete log"
elif [[ "$prevjobnum" == "$jobnum" ]]
then
ENDTIME=`date +%s.%N -d "$time"`
STARTTIME=`date +%s.%N -d "$prevtime"`
DIFF=$(echo $ENDTIME - $STARTTIME | bc | sed 's/0\{1,\}$//')
echo "$jobnum clip time is $DIFF seconds"
else
:
fi
ただし、IDの1つと2つのインスタンスでのみ動作します。私はまた、IDの最初と最後のインスタンスが以下のように2つ以上の場合に差をつけることができるようにしたいと思います。
975700 18:32:32.956
975700 18:32:32.971
975700 18:32:33.018
次のような出力を得たいですか。
975700 clip time is .062 seconds
975701 incomplete log
975702 clip time is .047 seconds
、//39240688/1983854)。あなたはまだそれが何かであり、それを提供しなかった答えを受け入れたと言った、望ましい出力を見逃しています。この投稿を編集してください。 – fedorqui
@Inian希望のo/pを含む質問を編集しました – Dren
@fedorqui以前の質問に既に回答していて、新しいスレッドで別の質問をしなければならないというフィードバックがあったので、別の質問を投稿します。 – Dren