jus*_*vol 2 linux sorting logging grep
我几乎看遍了所有地方(那里,那里,那里,那里和那里)都没有运气。
我这里有一个目录中的一堆日志文件,我需要在其中查找特定的 ID (myID) 并按日期对输出进行排序。这是一个例子:
在 file1.log 中:
2015-09-26 15:39:50,788 - DEBUG - blabla : {'id' : myID}
Run Code Online (Sandbox Code Playgroud)
在 file2.log 中:
2015-09-26 15:39:51,788 - ERROR - foo : {'id' : myID}
Run Code Online (Sandbox Code Playgroud)
在 file3.log 中:
2015-09-26 15:39:48,788 - ERROR - bar : {'id' : myID}
Run Code Online (Sandbox Code Playgroud)
预期输出:
2015-09-26 15:39:48,788 - ERROR - bar : {'id' : myID}
2015-09-26 15:39:50,788 - DEBUG - blabla : {'id' : myID}
2015-09-26 15:39:51,788 - ERROR - foo : {'id' : myID}
Run Code Online (Sandbox Code Playgroud)
我现在正在做的(而且效果很好)是:
grep -hri --color=always "myID" | sort -n
Run Code Online (Sandbox Code Playgroud)
唯一的问题是 grep 的 -h 选项会隐藏文件名。我想保留文件名并保留排序。我试过 :
grep -ri --color=always "myID" | sort -n -t ":" -k1,1 -k2,2
Run Code Online (Sandbox Code Playgroud)
但它不起作用。基本上,grep 命令输出文件名后跟“:”,我想对这个字符的结果进行排序。
非常感谢
尝试这个:
grep --color=always "myID" file*.log | sort -t : -k2,2 -k3,3n -k4,4n
Run Code Online (Sandbox Code Playgroud)
输出:
file3.log:2015-09-26 15:39:48,788 - 错误 - 栏:{'id':myID}
file1.log:2015-09-26 15:39:50,788-调试-blabla:{'id':myID}
file2.log:2015-09-26 15:39:51,788 - 错误 - foo : {'id' : myID}
| 归档时间: |
|
| 查看次数: |
5847 次 |
| 最近记录: |