Это моментальный снимок журнала ошибок:
06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel
at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195)
at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:222)
at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:208)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:139)
at com.rabbitmq.client.impl.ChannelN.basicGet(ChannelN.java:645)
Я выполняю следующую команду:
cat foo.log | grep ERROR, чтобы получить OP как:
06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message
Какую команду я должен выполнить, чтобы получить вывод как
06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel
, т. е. также grep строка (строки) после шаблона?
Просто выполните a:
grep -A1 ERROR
-A1 сообщает grep включить 1 строку после матча. -B включает строки перед матчем, если вам это тоже нужно.
Просто выполните a:
grep -A1 ERROR
-A1 сообщает grep включить 1 строку после матча. -B включает строки перед матчем, если вам это тоже нужно.
Просто выполните a:
grep -A1 ERROR
-A1 сообщает grep включить 1 строку после матча. -B включает строки перед матчем, если вам это тоже нужно.
Просто выполните a:
grep -A1 ERROR
-A1 сообщает grep включить 1 строку после матча. -B включает строки перед матчем, если вам это тоже нужно.
Просто выполните:
grep -A1 ERROR
-A1
сообщает grep включить 1 строку после совпадение. -B
включает строки перед совпадением, если вам это тоже нужно.
Просто выполните:
grep -A1 ERROR
-A1
сообщает grep включить 1 строку после совпадение. -B
включает строки перед совпадением, если вам это тоже нужно.
Просто выполните:
grep -A1 ERROR
-A1
сообщает grep включить 1 строку после совпадение. -B
включает строки перед совпадением, если вам это тоже нужно.
Просто выполните:
grep -A1 ERROR
-A1
сообщает grep включить 1 строку после совпадение. -B
включает строки перед совпадением, если вам это тоже нужно.
Просто выполните:
grep -A1 ERROR
-A1
сообщает grep включить 1 строку после совпадение. -B
включает строки перед совпадением, если вам это тоже нужно.
-C
включает строки как до, так и после матча («C» означает «контекст», я считаю).
– Marius Gedminas
24 February 2011 в 20:01
Для более портативного способа есть awk
awk '/ERROR/{n=NR+1} n>=NR' foo.log
Или, может быть, вы хотите, чтобы все отступы были следующими?
awk '/^[^[:blank:]]/{p=0} /ERROR/{p=1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^.*?Exception In get Message.*?\ncom\.rabbitmq.*?(\n(?=\s).*?)*$'
Где (\n(?=\s).*?)* означает:
\n найти следующую строку (?=\s), где начинается с символа пробела .*? до конца строки (...)* Найти такие строки несколько разPS. Вы можете опрокинуть этот шаблон \ncom\.rabbitmq.*?, если вторая строка начинается с пробела \s
Я нашел это решение:
cat apache.error.log | grep -Pzo '^.*?Exception In get Message.*?\ncom\.rabbitmq.*?(\n(?=\s).*?)*$'
Где (\n(?=\s).*?)* означает:
\n найти следующую строку (?=\s), где начинается с символа пробела .*? до конца строки (...)* Найти такие строки несколько разPS. Вы можете опрокинуть этот шаблон \ncom\.rabbitmq.*?, если вторая строка начинается с пробела \s
Для более портативного способа есть awk
awk '/ERROR/{n=NR+1} n>=NR' foo.log
Или, может быть, вы хотите, чтобы все отступы были следующими?
awk '/^[^[:blank:]]/{p=0} /ERROR/{p=1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^.*?Exception In get Message.*?\ncom\.rabbitmq.*?(\n(?=\s).*?)*$'
Где (\n(?=\s).*?)* означает:
\n найти следующую строку (?=\s), где начинается с символа пробела .*? до конца строки (...)* Найти такие строки несколько разPS. Вы можете опрокинуть этот шаблон \ncom\.rabbitmq.*?, если вторая строка начинается с пробела \s
Для более портативного способа есть awk
awk '/ERROR/{n=NR+1} n>=NR' foo.log
Или, может быть, вы хотите, чтобы все отступы были следующими?
awk '/^[^[:blank:]]/{p=0} /ERROR/{p=1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^.*?Exception In get Message.*?\ncom\.rabbitmq.*?(\n(?=\s).*?)*$'
Где (\n(?=\s).*?)* означает:
\n найти следующую строку (?=\s), где начинается с символа пробела .*? до конца строки (...)* Найти такие строки несколько разPS. Вы можете опрокинуть этот шаблон \ncom\.rabbitmq.*?, если вторая строка начинается с пробела \s
Для более портативного способа есть awk
awk '/ERROR/{n=NR+1} n>=NR' foo.log
Или, может быть, вы хотите, чтобы все отступы были следующими?
awk '/^[^[:blank:]]/{p=0} /ERROR/{p=1} p' foo.log
Для более портативного способа есть awk
awk '/ ERROR / {n = NR + 1} n & gt; = NR' foo.log
Или, может быть, вам нужны следующие строки с отступом?
awk '/ ^ [^ [: blank:]] / {p = 0} / ERROR / {p = 1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^. *? Exception В get Message. *? \ncom \ .rabbitmq. *? (\n (? = \ s). *?) * $'
Где (\n (? = \ S). *?) *
означает:
\n
найти следующую строку (? = \ s)
, где начинается с символа пробела . *?
до конца строки (...) *
Найти такие строки несколько раз PS. Вы можете опрокинуть этот шаблон \ncom \ .rabbitmq. *?
, если вторая строка начинается с пробела \ s
Для более портативного способа есть awk
awk '/ ERROR / {n = NR + 1} n & gt; = NR' foo.log
Или, может быть, вам нужны следующие строки с отступом?
awk '/ ^ [^ [: blank:]] / {p = 0} / ERROR / {p = 1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^. *? Exception В get Message. *? \ncom \ .rabbitmq. *? (\n (? = \ s). *?) * $'
Где (\n (? = \ S). *?) *
означает:
\n
найти следующую строку (? = \ s)
, где начинается с символа пробела . *?
до конца строки (...) *
Найти такие строки несколько раз PS. Вы можете опрокинуть этот шаблон \ncom \ .rabbitmq. *?
, если вторая строка начинается с пробела \ s
Для более портативного способа есть awk
awk '/ ERROR / {n = NR + 1} n & gt; = NR' foo.log
Или, может быть, вам нужны следующие строки с отступом?
awk '/ ^ [^ [: blank:]] / {p = 0} / ERROR / {p = 1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^. *? Exception В get Message. *? \ncom \ .rabbitmq. *? (\n (? = \ s). *?) * $'
Где (\n (? = \ S). *?) *
означает:
\n
найти следующую строку (? = \ s)
, где начинается с символа пробела . *?
до конца строки (...) *
Найти такие строки несколько раз PS. Вы можете опрокинуть этот шаблон \ncom \ .rabbitmq. *?
, если вторая строка начинается с пробела \ s
Для более портативного способа есть awk
awk '/ ERROR / {n = NR + 1} n & gt; = NR' foo.log
Или, может быть, вам нужны следующие строки с отступом?
awk '/ ^ [^ [: blank:]] / {p = 0} / ERROR / {p = 1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^. *? Exception В get Message. *? \ncom \ .rabbitmq. *? (\n (? = \ s). *?) * $'
Где (\n (? = \ S). *?) *
означает:
\n
найти следующую строку (? = \ s)
, где начинается с символа пробела . *?
до конца строки (...) *
Найти такие строки несколько раз PS. Вы можете опрокинуть этот шаблон \ncom \ .rabbitmq. *?
, если вторая строка начинается с пробела \ s
Для более портативного способа есть awk
awk '/ ERROR / {n = NR + 1} n & gt; = NR' foo.log
Или, может быть, вам нужны следующие строки с отступом?
awk '/ ^ [^ [: blank:]] / {p = 0} / ERROR / {p = 1} p' foo.log
Я нашел это решение:
cat apache.error.log | grep -Pzo '^. *? Exception В get Message. *? \ncom \ .rabbitmq. *? (\n (? = \ s). *?) * $'
Где (\n (? = \ S). *?) *
означает:
\n
найти следующую строку (? = \ s)
, где начинается с символа пробела . *?
до конца строки (...) *
Найти такие строки несколько раз PS. Вы можете опрокинуть этот шаблон \ncom \ .rabbitmq. *?
, если вторая строка начинается с пробела \ s