Soru unix kabuk komut dosyasından 1 saat sonra çıkar


Kabuk betiğinde aşağıdakiler var. Biçimi korurken bir saat nasıl çıkartabilirim?

DATE=`date "+%m/%d/%Y -%H:%M:%S"`

25
2018-05-09 08:26


Menşei




Cevaplar:


Aşağıdaki komut, GNU'nun son sürümlerinde çalışır date:

date -d '1 hour ago' "+%m/%d/%Y -%H:%M:%S"

40
2018-05-09 08:35



recipe -date: yasadışı seçenek - d kullanımı: date [-u] mmddHHMM [[cc] yy] [. SS] tarih [-u] [+ biçim] date -a [-] sss [.fff] - shamir chaikin
@shamir, bu, sürümünüzün bu seçeneği desteklemediği anlamına gelir. - dogbane
Ben bunu anlatayım - onu gönderiyorum çünkü bunu solaris makinede yapmak için başka bir yol biliyor olabilirsiniz? - shamir chaikin
@shamir, sadece GNU tarihini yüklemek en kolay olabilir. Farklı bir önek veya yol kullanabilirsiniz, böylece "resmi" olanla çakışmaz. Solaris üzerinde çok fazla iş yaptığımda, / home / karl / binimde bir çok GNU yardımcı programı kurdum çünkü bu kullanışlı ekstra seçeneklere sahipler. - Karl Bielefeldt


date -v-60M "+%m/%d/%Y -%H:%M:%S"

DATE=`date -v-60M "+%m/%d/%Y -%H:%M:%S"`

Bash versiyonunuz varsa 4.4+ bash'ın dahili tarih baskısını ve aritmetik ürünlerini kullanabilirsiniz:

printf "current date: %(%m/%d/%Y -%H:%M:%S)T\n"
printf "date - 60min: %(%m/%d/%Y -%H:%M:%S)T\n" $(( $(printf "%(%s)T") - 60 * 60 ))

$(printf "%(%s)T") epoch saniye basar $(( epoch - 60*60 )) bash-aritmetics - saniyeler içinde 1 saat çıkarılıyor. Baskılar:

current date: 04/20/2017 -18:14:31
date - 60min: 04/20/2017 -17:14:31

6
2018-05-09 21:11



evet benim işletim sistemi desteklemiyor, herhangi bir şekilde teşekkürler - shamir chaikin
Bu çalışmıyor date Ubuntu'da gönderildi. - Flimm
@Flimm Bu OS X üzerinde çalışıyor ve ben de BSD bekliyoruz - Jason S


zaman damgası ile substract ihtiyacınız varsa:

timestamp=$(date +%s -d '1 hour ago');

4
2017-12-04 15:15





Zaman damgasına (uzun bir tamsayı) dönüştürün, ihtiyacınız olan formata yeniden biçimlendirerek, milisaniyelerin doğru sayısını çıkarın.

Bir programlama dili belirtmediğinizden daha fazla ayrıntı vermek zor ...


2
2018-05-09 08:29



ahh .. kabuk komut dosyası kullanıyorum, formülü şunun gibi git: -DATE =date "+%m/%d/%Y -%H:%M:%S" ve DATE tarihinden 1 saat çıkarmak istiyorum - shamir chaikin
Kabukta kalmanız mı gerekiyor? Bir satır içi awk veya perl betiği, istediğiniz formatta kolayca bir saat çıkarabilir ve çıktı verebilir. - CoreyStup


Ubuntu 16.04 Bu çalışma date: date --date="@$(($(date +%s) - 3600))" "+%m/%d/%Y -%H:%M:%S" Ve date sürüm date (GNU coreutils) 8.25


1
2018-03-21 12:14





Yeni biçimle çıkartmadan önce saat dilimini değiştirmeniz gerekiyorsa:

$(TZ=US/Eastern date -d '1 hour ago' '+%Y-%m-%d %H:%M')

0
2018-05-24 10:37