Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Манипуляции с датами в BASH / 9 сообщений из 9, страница 1 из 1
11.12.2006, 16:18:33
    #34190798
Shab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
Привет всем!

Как в BASH из текущей даты вычесть 2 дня и вывести на экран результат?

Спасибо.
Александр
...
Рейтинг: 0 / 0
11.12.2006, 17:18:51
    #34191081
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
на shell это imho выходит слишком громоздко, поэтому если это не лабораторка - то лучше через perl

Код: plaintext
perl -e 'use Time::Local;use POSIX;print strftime(("%d-%m-%Y"),localtime(time-86400*2))'
...
Рейтинг: 0 / 0
11.12.2006, 17:28:10
    #34191119
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
--null--на shell это imho выходит слишком громоздко, поэтому если это не лабораторка - то лучше через perl

...ну это сильно зависит как ее получать в shell'e... у `date` и ключик есть специальный для этого...

Код: plaintext
perl -e 'use Time::Local;use POSIX;print strftime(("%d-%m-%Y"),localtime(time-86400*2))'

...главное не умудрится и не запустить этот код как минимум два раза в году..., да еще ночью в районе 2-3 часов... когда мы там летнее\зимнее время меняем ? :)
...
Рейтинг: 0 / 0
11.12.2006, 17:56:12
    #34191235
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
от перевода времени конечно надо отдельно защищаться. Imhi в момент перехода лучше вообще ничего не запускать :-)
а у date можно
Код: plaintext
date -v -2d "+%d-%m-%Y"
но это не переносимо к сожалению. Вот на FreeBSD работает, на каких-то линухах -нет
...
Рейтинг: 0 / 0
11.12.2006, 18:09:14
    #34191290
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
эхх а под линухом зато есть замечательные вещи
Код: plaintext
1.
2.
3.
date -d "2 day ago"

date +%d-%m-%Y -d "yesterday"
но они непереносимы уже в FreeBSD. Как несовершенен мир
...
Рейтинг: 0 / 0
11.12.2006, 18:11:53
    #34191296
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
--null--от перевода времени конечно надо отдельно защищаться. Imhi в момент перехода лучше вообще ничего не запускать :-)

...не всегда получается при 7x24x365... :) Time::Local кстати может, только если не совсем древний, но туть опять же переносимость...


а у date можно
Код: plaintext
date -v -2d "+%d-%m-%Y"
но это не переносимо к сожалению. Вот на FreeBSD работает, на каких-то линухах -нет

ну да, ключики в линуксовом `date` поменять таки придется, но если это чтото на века то можно и проверку OS ( или date ) забить... а если наколенное, пользуемое раз в год, то man date перед использованием прочесть... :)
...
Рейтинг: 0 / 0
11.12.2006, 18:14:31
    #34191307
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
и еще вариант под фряху. Увы - только под нее :-(
Код: plaintext
d=`expr \`date "+%s"\` -  172800 `; date -r $d
...
Рейтинг: 0 / 0
11.12.2006, 18:18:50
    #34191320
Shab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
В перле еще нашел
use DateTime;
use Date::Calc qw( Today_and_Now Add_Delta_DHMS );

my $yesterday = DateTime->now->subtract( days => 1 );
print "Yesterday was $yesterday\n";

my @date_time = Add_Delta_DHMS( Today_and_Now(), -2, 0, 0, 0 );
print "@date_time\n";

Спасибо большое всем
...
Рейтинг: 0 / 0
11.12.2006, 18:21:49
    #34191336
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Манипуляции с датами в BASH
такой еще есть вариант но надо проверять

Код: plaintext
TZ=GMT+ 48  date
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Манипуляции с датами в BASH / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]