UTC時間を抽出して違いを見つけます。

UTC時間を抽出して違いを見つけます。

次の購入イベントと販売イベントのサンプル履歴を含むファイルがあります。

Buy at time=Thu Aug 03 2023 14:13:08 GMT+0200 (Central European Summer Time)

Sell-at time=Thu Aug 03 2023 14:53:02 GMT+0200 (Central European Summer Time)

すべての行から完全なUTC文字列を取得し、これらのレコード間の時間差を取得したいが、日付/時間文字列全体を抽出してレコード間の差を取得することはできません。これを試してみましたが、時間がありませんでした。誰でも私を助けることができますか?

while read line
do
    name=$line

    echo $name | sed -e 's/time=\(.*\)(Central/\1/'

done < $1

Shell、awk、またはsedを使用するソリューションが必要です。必要に応じてGNU Dateを使用することもできます。

ベストアンサー1

dateutils dconv( dateutils.dconvDebian 派生システムから呼び出される) には、sed日付を変換するモードがあります。これにより、タイムスタンプをエポック時間に変換し、awk販売日と購入日の差を秒単位で印刷できます。

dateutils.dconv -SE -i ' time=%a %b %d %Y %T GMT%Z' -f '=%s=' < your-file |
  awk -F= '$1 == "Buy at"  {buy = $2; next}
           $1 == "Sell-at" {print $2 - buy}'

おすすめ記事