Linux CLI'da, ayın haftasının sayısını almanın bir yolu var mı? Belki bunu basit bir date
komutla almanın başka bir yolu var mı? Diyelim ki 1 ila 7 gün birinci hafta, 8 ila 14 gün ikinci hafta, vb.
Linux CLI'da, ayın haftasının sayısını almanın bir yolu var mı? Belki bunu basit bir date
komutla almanın başka bir yolu var mı? Diyelim ki 1 ila 7 gün birinci hafta, 8 ila 14 gün ikinci hafta, vb.
Yanıtlar:
date
Bazı dış aritmetik ihtiyaç böylece komut, içten bunu yapamaz.
echo $((($(date +%-d)-1)/7+1))
Düzenleme:% ile d arasına eksi işareti eklendi
Bunu kullanabilirsiniz:
Pazartesi İlk hafta günü
WEEKNUMBER=$(( 1 + $(date +%V) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%V) ))
Pazar firs hafta daty
WEEKNUMBER=$(( 1 + $(date +%U) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%U) ))
Victor Sanchez'in çözümünü basitleştirmek:
expr 1 + $(date +%V) - $(date +%V -d $(date +%Y-%m-01))
Pazar günü başlayan haftaları istiyorsanız% V yerine% U yazın.
btw: $ ((...)) yerine expr kullanmak zorundaydı, çünkü daha sonraları başında sıfır olan sayılardan hoşlanmıyor gibi görünüyor.
Görevinizdeki harici araçları kabul ediyorsanız dateutils'i deneyin . Bu, ay içinde gerçekleşme tarihleri kavramına sahip, yani 27 Nisan 2012, Nisan 2012'deki 4. Cum, sadece hafta tanımınıza denk geliyor. Bu numarayı almak için şunu kullanın:
dconv 2012-04-27 -f %c
=>
04
%c
(sayım), ay içindeki oluşumun biçim belirticisidir. Ya da daha serin olmak için deneyin
dconv today -f '%cth %a in %b %Y'
=>
1st Wed in Sep 2012