Ini adalah snapshot dari log kesalahan:
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)
Saya melakukan perintah berikut:
cat foo.log | grep ERROR
untuk mendapatkan OP sebagai:
06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message
Perintah apa yang harus saya jalankan untuk mendapatkan output sebagai
06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel
yaitu, juga grep garis setelah pola?
bash
command-line
grep
theTuxRacer
sumber
sumber
com.rabbitmq.client
teks pada baris berikutnya dimulai dari awal atau ada spasi di depannya?Jawaban:
Lakukan saja:
The
-A1
memberitahu grep untuk memasukkan 1 baris setelah pertandingan.-B
termasuk baris sebelum pertandingan, jika Anda membutuhkannya juga.sumber
-C
termasuk baris baik sebelum dan sesudah pertandingan ('C' singkatan dari 'konteks', saya percaya).Untuk cara yang lebih portabel, ada awk
Atau mungkin Anda ingin semua lekukan mengikuti?
sumber
awk
perintah - perintah itu bekerja.Saya telah menemukan solusi ini:
Dimana
(\n(?=\s).*?)*
artinya:\n
temukan baris selanjutnya(?=\s)
di mana dimulai dari karakter spasi.*?
sampai akhir baris(...)*
Temukan garis seperti itu beberapa kaliPS. Anda dapat mengubah pola ini
\ncom\.rabbitmq.*?
jika baris kedua dimulai dari spasi\s
sumber