从这个输出:
2017-01-06 15:28:21,384 INFO [py.com.interceptors.SecurityInterceptor] (default task-14) (#1dfp) {"id":"1dfp","method":"getImageById","actionURL":"/image/get/{imageId}","admin":"mgarcia"}
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
more lines that not necessary have the same format
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1111) something I don't even know why I wanna log
more lines that not necessary have the same format
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1111) something I don't even know why I wanna log
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
我想得到:
2017-01-06 15:28:21,384 INFO [py.com.interceptors.SecurityInterceptor] (default task-14) (#**1dfp**) {"id":"1dfp","method":"getImageById","actionURL":"/image/get/{imageId}","admin":"mgarcia"}
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
所有那些有(#1dfp)的行,基本上只有我不知道值:(#1dfp)直到我做grep'/ image / get / {imageId}'
是否可以在一行中完成?像:
tail -f $ log | grep'一些反向引用或OR会让我得到所有(#1dfp)/ image / get / {imageId}'
谢谢!
答案 0 :(得分:0)
您可以使用awk
:
awk -F '[()]' 'index($0, "/image/get/{imageId}"){id=$4} $4 == id' file.log
2017-01-06 15:28:21,384 INFO [py.com.interceptors.SecurityInterceptor] (default task-14) (#1dfp) {"id":"1dfp","method":"getImageById","actionURL":"/image/get/{imageId}","admin":"mgarcia"}
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
2017-01-06 15:28:21,384 INFO [py.com.SomeOtherClass] (default task-14) (#1dfp) something I don't even know why I wanna log
工作原理:
(
或)
作为输入字段分隔符index($0, "/image/get/{imageId}")
找到包含文字/image/get/{imageId}
的行,然后id=$4
将第4个字段分配给id
$4 == id
只会打印$4
与变量id
相同的所有行