在管道中排序不起作用

在管道中排序不起作用

我有很多这样的文件,我想知道最高的内存消耗(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

我错过了什么?

先感谢您

答案1

cut -d':' -f3将从一行中提取第三个:分隔字段,但您应用它的行看起来像

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

相关内容