我有幾行如下所示,我需要根據變數對行進行排序和列印:值
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sum id:705 SignatureId : EDXGH Events:1320 Time Taken By All Events:11 eps:12000.0 Process Time on Average (in ms) for each event:0.008333333333333333
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sum id:231 SignatureId : EDXGH Events:60 Time Taken By All Events:13 eps:6000.0 Process Time on Average (in ms) for each event:0.016666666666666666
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sum id:644 SignatureId : EDXGH Events:1320 Time Taken By All Events:909 eps:14666.666666666666 Process Time on Average (in ms) for each event:0.006818181818181818
我正在嘗試根據“所有事件所用的時間:909”對行進行排序,我希望看到如下輸出
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sum id:644 SignatureId : EDXGH Events:1320 Time Taken By All Events:909 eps:14666.666666666666 Process Time on Average (in ms) for each event:0.006818181818181818
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sumid:768 SignatureId : EDXGH Events:1320 Time Taken By All Events:13 eps:10153.846153846152 Process Time on Average (in ms) for each event:0.009848484848484848
15:16:31.640 [Executor task launch worker for task 85] INFO IAME- Sum id:705 SignatureId : EDXGH Events:1320 Time Taken By All Events:11 eps:12000.0 Process Time on Average (in ms) for each event:0.008333333333333333
有關如何使用 linux 命令獲取此資訊的任何幫助
uj5u.com熱心網友回復:
這是“裝飾-排序-取消裝飾”模式:它提取您要排序的數字,將其放在行的前面,排序,然后洗掉該數字
paste <(grep -oP 'Time Taken By All Events:\K\d ' file) file \
| sort -nr -k1,1 \
| cut -f2-
我假設每一行都包含“所有事件所花費的時間”——如果該假設為假,則粘貼輸出將是錯誤的。
相同的概念,不同的命令,現在,過濾和裝飾:
perl -lne 'print "$1\t$_ file" if /Time Taken By All Events:(\d )/' file \
| sort -nr -k1,1 \
| cut -f2-
uj5u.com熱心網友回復:
裝飾-排序-取消裝飾的另一種形式:
sed -E 's/^(.*Time Taken By All Events:)([0-9]*)(.*)$/\2 \1\2\3/' file | sort -nr -k1,1 | sed -E 's/^([^[:space:]]* )(.*)/\2/'
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365928.html
上一篇:關于libcurl的問題
下一篇:nextflow:找不到命令
