比如这个文件,我想找到#Query_time对应的值从大到小对应的sql语句,从而帮助优先处理查询时间最长的sql,在linux中应该怎么去做呢?
比如这个文件,我想找到#Query_time对应的值从大到小对应的sql语句,从而帮助优先处理查询时间最长的sql,在linux中应该怎么去做呢?
大概的思路就是把两行合并成一行,然后用sort命令倒序排序:
awk '{ getline nextline; print nextline, $0 }' api.log | sort -k 2 -nr
希望能帮助到你。
2 回答1.3k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
2 回答954 阅读
2 回答824 阅读✓ 已解决
2 回答2.1k 阅读
1 回答913 阅读✓ 已解决
1 回答697 阅读✓ 已解决
awk 'NR%2{url=$0;next} {print $0" "url}'
:首先合并前两行,偶数行在前,结果就是#Query_time: 3 select * from users3;
sort -k 2 -nr
:根据第二行数字倒序排序cut -d ' ' -f3-
:移除非 sql 内容结果