Awk

在管道中排序不起作用

  • December 28, 2019

我有很多這些文件,我想知道什麼是最高的記憶體消耗(Mem)

$ cat utg006012l-racon-2.fasta.o5230935
[racon::Polisher::initialize] loaded target sequences 0.013133 s
[racon::Polisher::initialize] loaded sequences 6.667809 s
[racon::Polisher::initialize] loaded overlaps 6.267742 s
[racon::Polisher::initialize] aligning overlaps [=>                  ] 8.633518 s^M[racon::Polisher::initialize] aligning overlaps [==>                 ] 9.058757 s^M[racon::Polisher::initialize] aligning overlaps [===>                ] 9.490215 s^M[racon::Polisher::initialize] aligning overlaps [====>               ] 9.760396 s^M[racon::Polisher::initialize] aligning overlaps [=====>              ] 10.008019 s^M[racon::Polisher::initialize] aligning overlaps [======>             ] 10.332580 s^M[racon::Polisher::initialize] aligning overlaps [=======>            ] 10.681680 s^M[racon::Polisher::initialize] aligning overlaps [========>           ] 11.022209 s^M[racon::Polisher::initialize] aligning overlaps [=========>          ] 11.350026 s^M[racon::Polisher::initialize] aligning overlaps [==========>         ] 11.675731 s^M[racon::Polisher::initialize] aligning overlaps [===========>        ] 12.004713 s^M[racon::Polisher::initialize] aligning overlaps [============>       ] 12.330591 s^M[racon::Polisher::initialize] aligning overlaps [=============>      ] 12.650907 s^M[racon::Polisher::initialize] aligning overlaps [==============>     ] 12.965631 s^M[racon::Polisher::initialize] aligning overlaps [===============>    ] 13.271211 s^M[racon::Polisher::initialize] aligning overlaps [================>   ] 13.553430 s^M[racon::Polisher::initialize] aligning overlaps [=================>  ] 13.825148 s^M[racon::Polisher::initialize] aligning overlaps [==================> ] 14.088558 s^M[racon::Polisher::initialize] aligning overlaps [===================>] 14.350089 s^M[racon::Polisher::initialize] aligning overlaps [====================] 14.598578 s
[racon::Polisher::initialize] transformed data into windows 0.542441 s
[racon::Polisher::polish] generated consensus 11154.363114 s
[racon::Polisher::] total = 11183.003787 s

-----
PBS Job 5230935.pbs
CPU time  : 03:05:52
Wall time : 03:06:38
Mem usage : 4960216kb

我用過grep "Mem" *-racon-2.fasta.o* | cut -d':' -f3 | sed 's|kb||'| sed 's|b||' |awk '{print $1}' | sort,但它沒有對輸出進行排序

582384
5832
5832
584004
584552
584928
585008
585144
585416
586164
586252
587792
588196
588852
589204
58992
590336
590704
591184
592112
5928
5932
593700
59420
59476
595128
595696
596356
5968
59696
597772
599356
59972
6012
60300
6032
60404
604240
60528
6064
606544
607448
608080

我錯過了什麼?

先感謝您

cut -d':' -f3將從一行中提取 3rd :-delimited 欄位,但您應用它的行看起來像

Mem usage : 4960216kb

即,它只有兩個欄位:

  1. Mem usage, 和
  2. 4960216kb.

為了避免冗長的管道,您可以改用

sed -n '/^Mem/s/[^[:digit:]]*//gp' *-racon-2.fasta.o* | sort -n

這使用單個sed呼叫來提取以字元串開頭的行,Mem並通過刪除這些行上不是數字的所有內容來刪除數字。然後它將提取的數字傳遞sort -n給數字排序。

這相當於

grep '^Mem' *-racon-2.fasta.o* | tr -d -c '[:digit:]\n' | sort -n

引用自:https://unix.stackexchange.com/questions/559204