Всем привет!
Проблема, не получается грепнуть лог по регулярке.
Задача в логе выводить все записи за текущий час, то есть по шаблону
`date +%H`:*:* если сейчас допустим 16:35:01 то он попадает под регулярку если сейчас 16-часовcat /var/log/syslog | grep -E 16\:*\: не канает =( (попадает под шаблон 02:16:13 например)
> Проблема, не получается грепнуть лог по регулярке.
> `date +%H`:*:*Попробуй `date +%H`:..:
Попробуй _почитать про "регулярки".
Все спасибо с sed(ом) конечно мощно, но громоздко =). Символ "точка" в операциях поиска. При выполнении поиска по шаблону , в регулярных выражениях, символ "точка" обозначает одиночный символ. (Помогло)
> не канаетcat /var/log/syslog | grep " 16:"
cat /var/log/syslog | awk '$3~/^16:/ {print}';
sed '/\s*\(\S\+\s\+\)\{2\}\16:\(*\)\?\b/!d' /var/log/syslog
sed -n '16:00:/,16:15:/p' yourfile
> sed -n '16:00:/,16:15:/p' yourfile
# sed -n '03:00:/,03:15:/p' /var/log/all.log | more
sed: 1: "03:00:/,03:15:/p": command : expects up to 0 address(es), found 1
>> не канает
> cat /var/log/syslog | grep " 16:"
> cat /var/log/syslog | awk '$3~/^16:/ {print}';
> sed '/\s*\(\S\+\s\+\)\{2\}\16:\(*\)\?\b/!d' /var/log/syslogКстати, поведение
awk '$3~/^12:[0-1]/ {print}' /var/log/all.log
и
awk '$3~/^12:[0-1]*:/ {print}' /var/log/all.logОчень сильно отличаются...
> Очень сильно отличаются...Да у тя там ОСь какая-то не феншуйная.
>> Очень сильно отличаются...
> Да у тя там ОСь какая-то не феншуйная.Нечего советовать башизмы :)