|
Довольно непростой shell script (доработать)
|
|||
---|---|---|---|
#18+
Всем привет! Очень добрый человек когда-то написал мне классный скрипт http://www.sql.ru/forum/1135952/shell-script-opredelit-promezhutok-vremeni , но сейчас у меня возникла необходимость переделать его под новый формат логов. К сожалению, спектр моих знаний в шелл скриптинге очень ограничен, и самостоятельно доработать его у меня ну никак не получается. Новый формат выглядит так: 2015-06-20 22:10:08 USERID: 10005 N1 N4 Login UNM:[Earth] N3 2015-06-20 23:10:11 USERID: 10006 N2 N5 Login UNM:[Moon] N4 2015-06-20 23:20:55 USERID: 10005 FD G5 Logout U1 2015-06-21 02:35:42 USERID: 10006 N2 N5 Logout Y0 (жирным я выделил колонки, которые присутствуют в логе, но их обрабатывать не нужно) Вывод нужен такой: 10005 2015-06-20 Earth 22:10 01:10 10006 2015-06-20 Moon 23:10 03:25 Обратите внимание, что USERID 10006 залогинился, условно, сегодня, а вышел уже завтра. Нужно правильно посчитать время от логина до логаута (когда я пытался переделать скрипт, использовал это: Код: sql 1.
). Не знаю, может быть вам это подскажет что-нибудь. Формат 4 колонки для меня не важен. Можете вывести так: 3:25, или так: 3h25m. Как вам будет удобно. И секунды выводить нет необходимости. Иногда случается так, что для конкретного USERID, после "Login" не всегда идет "Logout". Бывает несколько "Login" подряд: 2015-06-20 22:10:08 USERID: 10005 N1 N4 Login UNM:[Earth] N3 2015-06-20 22:15:08 USERID: 10005 N1 N4 Login UNM:[Earth] N3 2015-06-20 23:20:55 USERID: 10005 FD G5 Logout U1 В таком случае для вычисления нужно использовать первый по счету логин. То есть вывод должен быть: 10005 2015-06-20 Earth 22:10 01:10 Надеюсь, кто-то мне поможет. Буду очень благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2015, 17:21 |
|
Довольно непростой shell script (доработать)
|
|||
---|---|---|---|
#18+
Ой, перепутал местами время и нейм для вывода. Так как не уверен, что мне будет легко самому поменять их местами, лучше уточню. Вот такой нужен вывод: 10005 2015-06-20 22:10 Earth 01:10 10006 2015-06-20 23:10 Moon 03:25 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2015, 17:27 |
|
Довольно непростой shell script (доработать)
|
|||
---|---|---|---|
#18+
andrey10, ограничения: - файл лога заканчивается символом новой строки '\n'; - идентификаторы пользователей не содержат пробельных символов '\s'; - игнорируемые поля не содержат пробельных символов; - последнее игнорируемое поле в записи о логине не содержит правую квадратную скобку ']'. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 00:01 |
|
|
start [/forum/topic.php?fid=25&msg=38990907&tid=1482032]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 489ms |
0 / 0 |