|
|
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
Привет, есть лог файл в котором все записи начинаются с даты/времени в таком формате: yyyymmddhh24miss (20110829184035, например). Можно ли как-нить только с помощью shell получить все записи за последнюю неделю, день, или 3 часа - в общем любой необходимый интервал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2011, 18:43 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
Мой рецепт: - сместить TZ на нужное количество часов - вывести дату в нужном формате - найти нужную строку в логе - от нее уже читать вниз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2011, 19:08 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
man grep ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2011, 20:34 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 12:28 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
то есть while [ $I -lt $NUMBER_ROWS ] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 12:36 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
Затупил. Второй цикл можно вообще заменить сразу командой tail > файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 12:50 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
а моя рекомендация для того чтобы не за сегодня а с позавчера например выбирать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 13:06 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
позавчера 20110906120000 - 02000000 = 20110904120000 переход с месяца на месяц - нужно написать ещё пару-тройку циклов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 13:37 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
зачем? если можно посчитать смещение TZ в часах и вывести дату и время в нужном формате вплоть до минуты с которых и осуществлять поиск хвоста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 19:13 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
Можно и так. Но автору видимо нужны не рекомендации, а готовые решения. К тому же Ваши смещения не дадут результата, если мне 1 сентября надо найти данные за 30 августа. Всё равно нужен цикл или if для проверки некоторых условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 13:19 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
В первом посте задача поставлена однозначно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 16:19 |
|
||
|
Работа с датой/временем в shell
|
|||
|---|---|---|---|
|
#18+
ИхтиандрВ первом посте задача поставлена однозначно Но решение будет не эффективным. Для эффективного решения нужно использовать что то позволяющее переводить дату в формате файла в секунды от начала эпохи и обратно. например man 3 ctimeThe mktime() function modifies the fields of the tm structure as fol- lows: tm_wday and tm_yday are set to values determined from the con- tents of the other fields; if structure members are outside their valid interval, they will be normalized (so that, for example, 40 October is changed into 9 November); tm_isdst is set (regardless of its initial value) to a positive value or to 0, respectively, to indicate whether DST is or is not in effect at the specified time. Calling mktime() also sets the external variable tzname with information about the cur- rent timezone. В шелах такой фичи не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 18:15 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37426816&tid=1484030]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
427ms |
get topic data: |
57ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 842ms |

| 0 / 0 |
