У меня есть регулярное выражение, которое отлично работает для меня. Я проверил его на следующем сайте: https://www.regex101.com/
(?<=.log:)[^;]*
К сожалению, он больше не работает, когда я пытаюсь использовать его с grep. Я пытаюсь сделать следующее:
cat foo.log | grep -E '(?<=.log:)[^;]*'
Я знаю, что есть совпадения, потому что я создал и протестировал мое регулярное выражение после этого шаблона. Кроме того, параметр -E работал, потому что регулярное выражение *.* работало нормально.
Посмотрите на конфигурацию:
201407010300.log:2014-07-01 03:00;10.112.64.250;2;1145439;ULC IBM
201407010100.log:2014-07-01 01:00;10.112.64.250;2;1145216;ULC IBM
201407010100.log:2014-07-01 01:00;10.112.64.250;3;968549;ULC Primeline
Есть ли у вас какие-либо соображения, почему это не работает?