- Скопировать часть текста от определенной строки до конца файла,
Pahanivo, 22:56 , 12-Сен-15 (1)
- Скопировать часть текста от определенной строки до конца файла,
Pahanivo, 23:05 , 12-Сен-15 (2)как сделать чтобы совпадение искалось последнее - на самостоятельное изучение и было бы очень неплохо прося помочь в разборе текста - приводить кусок оригинала текста а то пишем что лог со временем, пример без времени почему то ... несхлапывается.
- Скопировать часть текста от определенной строки до конца файла,
qazarus, 23:18 , 12-Сен-15 (4) –2 > как сделать чтобы совпадение искалось последнее - на самостоятельное изучение > и было бы очень неплохо прося помочь в разборе текста - приводить > кусок оригинала текста > а то пишем что лог со временем, пример без времени почему то > ... несхлапывается.Извините, а зачем вы вообще написали? Ваш совет выглядит так: Как это сделать ищи сам, и логи пиши рабочие. Если не знаете, зачем тогда вообще пишите? Любой в гугл отправить сможет, а совет по делу не каждый осилит. А лог не написал, так как там много рабочей информации, а если мне покажут как сделать с моего примера "лога", я решение уже сам адаптирую.
- Скопировать часть текста от определенной строки до конца файла,
qazarus, 23:15 , 12-Сен-15 (3) –1 > в гугле бан? > https://www.google.ru/#newwindow=1&q=sed+%D1%82... > первая же ссылка > если вдруг: > в браузере нажать ctrl+f и вбить "Печатать часть файла начиная от совпадения > с регулярным выражением и до конца файла" У меня главная проблема была в том, что я не знаю как отрезать кусок от последнего совпадения, а по ссылкам информация об обрезке от первого. В таком случае мне выбросит весь лог целиком - от первого запуска, до последней строки.
- Скопировать часть текста от определенной строки до конца файла,
Square1, 00:54 , 13-Сен-15 (6)>> в гугле бан? >> https://www.google.ru/#newwindow=1&q=sed+%D1%82... >> первая же ссылка >> если вдруг: >> в браузере нажать ctrl+f и вбить "Печатать часть файла начиная от совпадения >> с регулярным выражением и до конца файла" > У меня главная проблема была в том, что я не знаю как > отрезать кусок от последнего совпадения, а по ссылкам информация об обрезке > от первого. В таком случае мне выбросит весь лог целиком - > от первого запуска, до последней строки.open(TT,"t.t"); @arr=(); while($r=<TT>){ if ($r=~/Program started/){@arr=();} push(@arr,$r); } foreach $r(@arr){print $r;}
- Скопировать часть текста от определенной строки до конца файла,
Square1, 01:00 , 13-Сен-15 (7)> open(TT,"t.t"); > @arr=(); > while($r=<TT>){ > if ($r=~/Program started/){@arr=();} > push(@arr,$r); > } > foreach $r(@arr){print $r;} Конечно, если между Program started логи достигают гигабайтов- такой алгоритм будет накладным. Тогда можно например не копировать полностью строки, а только запомнить номер строки когда встретился Program started, и потом повторно прогнать лог до нужной строки с которйо начать делать копию прямо в файл...
- Скопировать часть текста от определенной строки до конца файла,
Square1, 01:08 , 13-Сен-15 (8)>[оверквотинг удален] >> @arr=(); >> while($r=<TT>){ >> if ($r=~/Program started/){@arr=();} >> push(@arr,$r); >> } >> foreach $r(@arr){print $r;} > Конечно, если между Program started логи достигают гигабайтов- такой алгоритм будет накладным. > Тогда можно например не копировать полностью строки, а только запомнить номер > строки когда встретился Program started, и потом повторно прогнать лог > до нужной строки с которйо начать делать копию прямо в файл... Например так: open(TT,"t.t"); $countg=0; $countstring=0; while($r=<TT>){ $countg++; if ($r=~/Program started/){$countstring=$countg;} } $lines=$countg-$countstring; print "сделать: tail -n $lines t.t\n";
- Скопировать часть текста от определенной строки до конца файла,
Etch, 00:50 , 13-Сен-15 (5) +2 perl -0pe 's/.*Program started\n/Program started\n/s;' file.txt
- Скопировать часть текста от определенной строки до конца файла,
Павел Самсонов, 15:46 , 13-Сен-15 (10)>[оверквотинг удален] > > Program started > 1fidjgiod > 2jriojrgjsdo > 3iofodihoih > > То есть участок от последнего совпадения и до конца файла. > Как это сделать уже не знаю, сначала мучал grep, потом пытался сделать > это с sed, но его знаю ужасно, по этому не помогло > даже двухдневное штудирование манов.Head -n печаает н первых строк Tail -n печатает н последних строк N вычисяется grep ом. Я маны не помню, посмотрите сами. - Скопировать часть текста от определенной строки до конца файла,
pavlinux, 03:11 , 14-Сен-15 (11) +1 1. sed '/Program started/{h;d};H;$!d;x' logfile; 2. sed ':a;N;$!ba;s/.*Program started/Program started/g' logfile;
- Скопировать часть текста от определенной строки до конца файла,
PavelR, 08:03 , 14-Сен-15 (12)> Есть программа, которая пишет инфо о работе в лог. Мне требуется получить > часть лога с текущим запуском, текущей работой. > Мне нужно найти последнюю строку с текстом "Program started" (впереди есть еще > дата и время), и получить часть лога от этой строки до > конца файла.Вариант ротировать лог-файл перед запуском программы уже предлагали?
- Скопировать часть текста от определенной строки до конца файла,
Andrey Mitrofanov, 08:37 , 14-Сен-15 (13)> То есть участок от последнего совпадения и до конца файла.|tac |sed '/Program started/{p;q}' |tac Первый `|tac |` => на `tac $file |` будет "быстрее". > Как это сделать уже не знаю, сначала мучал grep, потом пытался сделать - Скопировать часть текста от определенной строки до конца файла,
greenwar, 13:19 , 14-Сен-15 (14) –3 нет чтобы человеку раз и навсегда объяснить, что через БД такое делается, если надо потом сложный поиск нет, будем погружать дальше в тему костылей
- Скопировать часть текста от определенной строки до конца файла,
pavlinux, 15:42 , 16-Сен-15 (15)> нет чтобы человеку раз и навсегда объяснить, что через БД такое делается, > если надо потом сложный поиск Нукась, изобрази на SQL, выбор из таблицы с теми же условиями?
- Скопировать часть текста от определенной строки до конца файла,
Andrey Mitrofanov, 16:34 , 16-Сен-15 (16)> Нукась, изобрази на SQL, выбор из таблицы с теми же условиями?Не, лучче пусть logrotate сделает. С вакуумами-партишонами и шахматами.
- Скопировать часть текста от определенной строки до конца файла,
Pahanivo, 09:53 , 17-Сен-15 (17)> Не, лучче пусть logrotate сделает. С вакуумами-партишонами и шахматами.да, времена настали ... плэйн текст разобрать уже подвиг!
- Скопировать часть текста от определенной строки до конца файла,
Andrey Mitrofanov, 16:11 , 17-Сен-15 (18)>> Не, лучче пусть logrotate сделает. С вакуумами-партишонами и шахматами. > да, времена настали ... > плэйн текст разобрать уже подвиг!Сейчас воители journald подтянутся -- всё и про текст, и про sql, и про профпригодность старпёров расскажут.
- Скопировать часть текста от определенной строки до конца файла,
greenwar, 15:21 , 08-Окт-15 (19) –2 >> нет чтобы человеку раз и навсегда объяснить, что через БД такое делается, >> если надо потом сложный поиск > Нукась, изобрази на SQL, выбор из таблицы с теми же условиями?ты серьёзно штоле, дядь, вот это тебе изобразить? >> Мне нужно найти последнюю строку с текстом "Program started" (впереди есть еще дата и время), и получить часть лога от этой строки до конца файла. Program started это флаг TINYINT с индексом, поскольку функционал сводится к start/stop/restart/итд "дата" это TIMESTAMP с индексом запрос написать или отсюда сам допрёшь?
- Скопировать часть текста от определенной строки до конца файла,
qazarus, 14:33 , 10-Фев-16 (20)Очень давно не заходил в тему, так как сам нашел невероятно простое решение. Тут-же за это время такого понаписали... Я удивлен, очень удивлен.Решение: data=`grep -n 'Program started' /var/log/program.log | sed "s/:.*//" | tail -n 1` Log=`sed -n $data,'$p' /var/log/program.log` Финита ля комедия, ага.
|