jak dodać dzień do bash?


24

Na przykład mam datę: 4 sierpnia 1993 r. I chcę dodać 348 dni, jak mogę to zrobić w bash?

Odpowiedzi:


30

Wystarczy użyć datepolecenia z -dopcją:

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

Możesz zmienić format wyjściowy, jeśli chcesz:

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

1
Możesz także użyć formatu daty OP:date -d "4 August 1993 348 days" +"%d %B %Y"
Wstrzymano do odwołania.

1
Według daty człowieka:%F full date; same as %Y-%m-%d
jperelli

12

W bash na Mac OS X możesz to zrobić:

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

Wydajność: 1994-07-18


1
Szukałem tego przez jakiś czas. Doceniam. Chciałem zastąpić liczbę „348” zmienną ze skryptu bash. Skończyło się NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)na tym, że ktoś chciał to zrobić.
Ian G

1

Oto nieco bardziej skomplikowane użycie tego:

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

lub z rurami:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.