次の購入イベントと販売イベントのサンプル履歴を含むファイルがあります。
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.dconv
Debian 派生システムから呼び出される) には、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}'