як додати день до дати в bash?


24

Наприклад, у мене дата: 4 серпня 1993 року, і я хочу додати 348 днів до неї, як я можу це зробити в bash?

Відповіді:


30

Просто використовуйте dateкоманду з -dопцією:

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

Ви можете змінити вихідний формат, якщо хочете:

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

1
Ви також можете використовувати формат дати ОП:date -d "4 August 1993 348 days" +"%d %B %Y"
Призупинено до подальшого повідомлення.

1
За датою чоловіка:%F full date; same as %Y-%m-%d
jperelli

12

У bash на Mac OS X ви можете це зробити:

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

Вихід: 1994-07-18


1
Нещодавно шукали цього. Я ціную. Я хотів замінити число "348" змінною зі скрипту bash. Я закінчився NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)для когось іншого, хто хоче це зробити.
Ян Г

1

Ось трохи складніше використання цього:

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

або з трубами:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.