The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"сортировка по времени внутри файла?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"сортировка по времени внутри файла?"  
Сообщение от alxk on 16-Окт-07, 18:12 
Есть файл.
16.10.2007,15:48:21,Security,Success Audit,Вход
16.10.2007,11:48:21,Security,Success Audit,Использование
10.10.2007,18:48:21,Security,Success Audit,Вход
10.10.2007,10:48:21,Security,Success Audit,Использование

С помощью чего можно сделать чтобы на выходе было самое ранее время каждый день?
т.е.
16.10.2007,11:48:21,Security,Success Audit,Использование
10.10.2007,10:48:21,Security,Success Audit,Использование

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "сортировка по времени внутри файла?"  
Сообщение от angra (ok) on 16-Окт-07, 19:04 
Вы не поверите, но при помощи стандартного sort :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "сортировка по времени внутри файла?"  
Сообщение от alxk on 16-Окт-07, 20:16 
>Вы не поверите, но при помощи стандартного sort :)

sort как я понимаю просто перетосует,а мне надо чтобы остались только рание часы или я не понял

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "сортировка по времени внутри файла?"  
Сообщение от alxk on 16-Окт-07, 22:18 
в линукс есть unic
-w, --check-chars=N
compare no more than N characters in lines
а в FreeBSD нет
а тоб я ненужные строки поудалял.
А что есть аналогичное?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "сортировка по времени внутри файла?"  
Сообщение от anonymous (??) on 16-Окт-07, 23:38 
>в линукс есть unic
>-w, --check-chars=N
>compare no more than N characters in lines
>а в FreeBSD нет
>а тоб я ненужные строки поудалял.
>А что есть аналогичное?

не unic, а uniq -- может в этом проблема?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "сортировка по времени внутри файла?"  
Сообщение от alxk on 17-Окт-07, 09:32 
>не unic, а uniq -- может в этом проблема?

ага
а еслиб не ошибся вы бы и это сообщение не написали
нет проблема не в этом

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "сортировка по времени внутри файла?"  
Сообщение от angra (ok) on 17-Окт-07, 18:50 
>>Вы не поверите, но при помощи стандартного sort :)
>
>sort как я понимаю просто перетосует,а мне надо чтобы остались только рание
>часы или я не понял

Это я не понял задачи, думал вам надо отсортировать по времени, не обращая внимания на день. Тогда придется добавить uniq -w. В общем используя только sort и uniq эту задачу решить можно, но может действительно стоит взять awk или perl

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "сортировка по времени внутри файла?"  
Сообщение от vic (??) on 17-Окт-07, 13:18 
>[оверквотинг удален]
>16.10.2007,15:48:21,Security,Success Audit,Вход
>16.10.2007,11:48:21,Security,Success Audit,Использование
>10.10.2007,18:48:21,Security,Success Audit,Вход
>10.10.2007,10:48:21,Security,Success Audit,Использование
>
>С помощью чего можно сделать чтобы на выходе было самое ранее время
>каждый день?
>т.е.
>16.10.2007,11:48:21,Security,Success Audit,Использование
>10.10.2007,10:48:21,Security,Success Audit,Использование

Как я понимаю это некий лог-файл куда добавляются записи и они в принципе уже отсортированы по дате-времени. Тогда вот такой скрипт может помочь:
awk '{
    cday = substr($0, 0, 2);
    if (day != cday) { print $0 ; day = cday; }
}' day=0 < file.log;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "сортировка по времени внутри файла?"  
Сообщение от tret (??) on 18-Окт-07, 11:01 
>awk '{
>    cday = substr($0, 0, 2);
>    if (day != cday) { print $0 ;
>day = cday; }
>}' day=0 < file.log;

Типа работает но не так.
Сортировка вроде есть,но мне нужно меньшее время(а у вас верхнее делает,хотя может вы только наводку дали...)
16.10.2007,15:48:21
16.10.2007,9:48:21
16.10.2007,8:40:21

а если сортирую хитро в обратную получается так
16.10.2007,9:48:21
16.10.2007,8:40:21
16.10.2007,15:48:21
и раннее время опять не первое стоит(если uniq потом делать)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "сортировка по времени внутри файла?"  
Сообщение от vic (??) on 18-Окт-07, 11:15 
>>awk '{
>>    cday = substr($0, 0, 2);
>>    if (day != cday) { print $0 ;
>>day = cday; }
>>}' day=0 < file.log;
>
>Типа работает но не так.
>Сортировка вроде есть,но мне нужно меньшее время(а у вас верхнее делает,хотя может
>вы только наводку дали...)

Ну да верхнее, т.к. если лог обычным образом ведется, методом добавления записей, то они автоматом по времени упорядочены.
>16.10.2007,15:48:21
>16.10.2007,9:48:21
>16.10.2007,8:40:21

вот это обратный порядок.

>
>а если сортирую хитро в обратную получается так
>16.10.2007,9:48:21
>16.10.2007,8:40:21
>16.10.2007,15:48:21

фигня какая-то, 8 < 9, и должно быть тогда так:
>16.10.2007,15:48:21   # из алфавитной.
>16.10.2007,8:40:21
>16.10.2007,9:48:21

если есть возможность писать 08 вместо 8, то надо это использовать.
и еще у sort есть ключ сортировать не по алфавиту, а по числам, его надо использовать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "сортировка по времени внутри файла?"  
Сообщение от Andrew (??) on 19-Окт-07, 00:36 
>фигня какая-то, 8 < 9, и должно быть тогда так:
>>16.10.2007,15:48:21   # из алфавитной.
>>16.10.2007,8:40:21
>>16.10.2007,9:48:21

Это не фигня какая-то, это сортировка по символам. 1 идет раньше чем 8 и 9. А 5ка раньше чем двоеточие. Что тут непонятного?
>
>если есть возможность писать 08 вместо 8, то надо это использовать.
>и еще у sort есть ключ сортировать не по алфавиту, а по
>числам, его надо использовать.

Решение на мой взгляд достаточно простое и незамысловатое: выбираем записи с одинаковой датой, сортируем по возрастанию и берем самую первую запись через head. Все.

А товарисч наверняка хочет фиксировать начало работы кого-то или чего-то. Задачка элементарная.
Если не сможешь это сделать через конвейер, сделай промежуточное сохранение результата выборки и сортировки в файлы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "сортировка по времени внутри файла?"  
Сообщение от vic (??) on 19-Окт-07, 11:29 
>>фигня какая-то, 8 < 9, и должно быть тогда так:
>>>16.10.2007,15:48:21   # из алфавитной.
>>>16.10.2007,8:40:21
>>>16.10.2007,9:48:21
>
>Это не фигня какая-то, это сортировка по символам. 1 идет раньше чем
>8 и 9. А 5ка раньше чем двоеточие. Что тут непонятного?

Читать пост внимательней надо, фраза "фигня какая-то" относится к примеру выше этой фразы (где строка с 8 идет ниже чем с 9), а ниже фразы как раз и написано как должно быть.

>
>Решение на мой взгляд достаточно простое и незамысловатое: выбираем записи с одинаковой
>датой, сортируем по возрастанию и берем самую первую запись через head.
>Все.

Да я уже awk-скрипт привел с решением. Чего повторятся-то. В один проход к тому же.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру