GNU/Linux >> Linux の 問題 >  >> Linux

bashで2つの日付の違いを取得するにはどうすればよいですか

bc を使用したこのソリューションの提案 :

current="$(date +%s.%N)" #current date, precise to nanoseconds
old="$(date +%s.%N -d "$(sh some_script_that_gives_a_date.sh)")" #convert output to ns too
diff=$(echo "$current-$old" |bc)

date +%s.%N -d $1 任意の日付を取り、指定された形式に変換します (この場合は +%s.%N のように) 、 float 秒) .

<ブロック引用>

-d は POSIX 日付の一部ではありません。 [しかし] [あなたが] Solaris のようなディストリビューションに取り組んでいない限り ([OP] は unix ではなく linux とタグ付けしています) [あなた] は良いはずです。 :)

(この回答に対する jaypal singh のコメント)

人間が読める形式に戻すには、
date $2 -d @0$diff #Pad diff with leading zero
を使用できます。

どこで $2 これも日付形式です。たとえば、ここを参照してください


let DIFF=(`date +%s -d 20120203`-`date +%s -d 20120115`)/86400
echo $DIFF

Linux
  1. バッシュ演算子の違い[[Vs[Vs(Vs((?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. Linuxで2つのファイルの違い(追加のみ)を取得する方法

  1. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?

  2. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?

  3. テキスト/パターンの最初の 2 つのインスタンスの間の単語を取得するにはどうすればよいですか?

  1. Bashスクリプトの実行とソースの違いは何ですか?

  2. Bash:2 つのタイムスタンプ間の経過時間を計算する

  3. 2 回の間に作成されたファイルを削除するには?