Ich brauche zu erzeugen Strings mit allen Tagen im JahrWie Datumsbereich für zufällige Daten auf bash
ex generieren:
MIN_DATE=01.01.2012
MAX_DATE=31.12.2012
for date in {1...366..1}
do
echo ...
done
Ich brauche zu erzeugen Strings mit allen Tagen im JahrWie Datumsbereich für zufällige Daten auf bash
ex generieren:
MIN_DATE=01.01.2012
MAX_DATE=31.12.2012
for date in {1...366..1}
do
echo ...
done
for d in {0..365}; do date -d "2012-01-01 + $d days" +'%d.%m.%Y'; done
keine reine bash Lösung, aber meine dateutils kann Hilfe:
dseq 01.01.2012 31.12.2012 -f %d.%m.%Y -i %d.%m.%Y
=>
01.01.2012
02.01.2012
...
31.12.2012
Ausgabeformat kann mit -f
und Eingabeformat konfiguriert werden wit h -i
.
Mit einem Datumsformat nach ISO 8601 (Jahr-Monat-Tag) können Sie Daten lexikografisch vergleichen. Es ist ein bisschen unordentlicher als ich möchte, da bash
keinen "< =" Operator für Strings hat.
year=2011
d="$year-01-01"
last="$(($year+1))-01-01"
while [[ $d < $last ]]; do
echo $d
d=$(date +%F --date "$d + 1 day")
done
wie dies automatisch zu tun mit Leckjahren? –
@DmitryDubovitsky Was meinst du? '29.02.2012' ist in der Ausgabe vorhanden. –
es automatisch, zum Beispiel für 2011 Jahr letzter Datensatz wäre 2012-01-01 etwas, das ausgegeben werden soll: 'days_in_year = date "2012-12-31" + "% j"; für d in ... ' –