Тут есть неплохое описание с примерами: http://citforum.ru/operating_systems/articles/sed_awk.shtml http://www.opennet.ru/docs/RUS/bash_scripting_guide/
25 февраля 2011 г. 13:14 пользователь Тарас Перебейносов <[email protected]> написал: > ну вот) за каждый день, а не за каждую секунду) а если убирать повторения > юзеров за день, нужно убрать время сначала. Но не суть, согласен, надо > выражаться точнее. > > в общем, давно хотел узнать как из строки можно по шаблону вытаскивать кусок > в переменную) > > 25 февраля 2011 г. 13:11 пользователь Сергей Болонкин <[email protected]> > написал: >> >> Всё правильно. Как и было поставлено условие: >> "...Т.е. нужно получить список юзеров за каждый день, без повторений и >> пустых >> юзеров (-)...." >> >> 25 февраля 2011 г. 13:07 пользователь Тарас Перебейносов >> <[email protected]> написал: >> > Это всего лишь избавляет от пользователей "-". Дубликаты - один и тот же >> > пользователь в течении дня, а не в ту же секунду. Т.е. нужно сначала >> > отрезать от даты время, оставив только "25/Feb/2011", потом для каждой >> > даты >> > убрать дубликаты юзеров. >> > >> > Думаю без цикла не обойтись. Для начало хотелось бы реализовать это: >> > >> > file="dirname/filename" >> > >> > grep -v ';-$' | while read string >> > do >> > date=`echo $string | <как то получаем только 25/Feb/2011>` >> > .... >> > done >> > >> > Как мне из строки "[25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN" >> > получить >> > только дату в формате "25/Feb/2011"? >> > >> > 25 февраля 2011 г. 12:27 пользователь Сергей Болонкин <[email protected]> >> > написал: >> >> >> >> Прошу прощения, не убрал дубликаты :) >> >> >> >> cat [dirname/filename]|grep -v ';-$'|sort -u >> >> >> >> 25 февраля 2011 г. 12:24 пользователь Сергей Болонкин <[email protected]> >> >> написал: >> >> > Как быстрый вариант: >> >> > cat [dirname/filename]|grep -v ';-$' >> >> > >> >> > 25 февраля 2011 г. 11:47 пользователь Тарас Перебейносов >> >> > <[email protected]> написал: >> >> >> Доброго времени суток! >> >> >> >> >> >> Нужна помощь в написании скрипта, который будет парсить очень >> >> >> большой >> >> >> лог (> >> >> >> 300 Mb) >> >> >> >> >> >> Лог выглядит так: >> >> >> >> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN >> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN >> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN >> >> >> [25/Feb/2011:11:42:57 +0300];X_HudsonAccesToSVN >> >> >> [25/Feb/2011:11:42:58 +0300];- >> >> >> [25/Feb/2011:11:43:08 +0300];- >> >> >> [25/Feb/2011:11:43:08 +0300];- >> >> >> [25/Feb/2011:11:43:09 +0300];- >> >> >> [25/Feb/2011:11:43:09 +0300];Trofimov >> >> >> [25/Feb/2011:11:43:19 +0300];- >> >> >> >> >> >> На выходе нужно получить файл, в котором будет содержаться: >> >> >> 25/Feb/2011;X_HudsonAccesToSVN >> >> >> 25/Feb/2011;Trofimov >> >> >> >> >> >> Т.е. нужно получить список юзеров за каждый день, без повторений и >> >> >> пустых >> >> >> юзеров (-). >> >> >> Лог реально большой, и это тоже надо учесть. >> >> >> >> >> >> Я пока только начинаю писать скрипты на bash, пока не особо умею >> >> >> пользоваться awk и иже с ними, поэтому буду благодарен любым советам >> >> >> и >> >> >> подсказкам >> >> >> >> >> > >> >> > >> >> > -- >> >> > ____________________________ >> >> > С уважением, Сергей Болонкин >> >> > >> >> >> >> >> >> >> >> -- >> >> ____________________________ >> >> С уважением, Сергей Болонкин >> >> -- >> >> ubuntu-ru mailing list >> >> [email protected] >> >> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru >> > >> > >> > -- >> > ubuntu-ru mailing list >> > [email protected] >> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru >> > >> > >> >> >> >> -- >> ____________________________ >> С уважением, Сергей Болонкин >> -- >> ubuntu-ru mailing list >> [email protected] >> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru > > > -- > ubuntu-ru mailing list > [email protected] > https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru > > -- ____________________________ С уважением, Сергей Болонкин -- ubuntu-ru mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
