Wie füge ich einen Tag in bash hinzu?


24

Ich habe beispielsweise das Datum: 4. August 1993 und möchte 348 Tage hinzufügen. Wie kann ich das in Bash tun?

Antworten:


30

Verwenden Sie einfach den dateBefehl mit der -dOption:

$ date -d "1983-08-04 348 days"
Tue Jul 17 00:00:00 BST 1984  

Sie können das Ausgabeformat ändern, wenn Sie möchten:

$ date -d "1983-08-04 2 days" +%Y-%m-%d
1983-08-06                                           

1
Sie können auch das Datumsformat des OP verwenden:date -d "4 August 1993 348 days" +"%d %B %Y"
Dennis Williamson

1
Entsprechend dem %F full date; same as %Y-%m-%d
Manndatum

12

In bash unter Mac OS X können Sie dies tun:

date -j -v +348d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d

Ausgabe: 1994-07-18


1
Ich habe eine Weile danach gesucht. Ich schätze. Ich wollte die Nummer "348" durch eine Variable aus einem Bash-Skript ersetzen. Am Ende hatte ich NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)jemanden, der dies tun wollte.
Ian G

1

Hier ist eine etwas komplexere Verwendung davon:

for i in `seq 1 5`;
do;
  date -d "2014-02-01 $i days" +%Y-%m-%d;
done;

oder mit Rohren:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.