出力をソートしたいです。次のコマンドベースpcpu
:
ps -p 29492 -L -o pid,tid,psr,pcpu
私は以下を試しました:
ps -p 29492 -L -o pid,tid,psr,pcpu --sort=pcpu
しかし、これはうまくいかないようです。この問題をどのように解決できますか?
答え1
実装時のps
順序は、スレッドではなくプロセスにのみ適用される可能性が高いです。fancy_spew()
存在するprocps
」display.c
)。私が知っている限り、スレッドをソートするには出力を後処理する必要があります。
ps -p 29492 -L -o pid,tid,psr,pcpu | sort -n -k4,4
ただし、出力でヘッダー行が混乱します。ヘッダー行を保持するには、それを取り出して別々に印刷できます。
ps -p 29492 -L -o pid,tid,psr,pcpu | sed -e1\!b -e'w /dev/fd/2' -ed | sort -n -k4,4
すべての出力セレクタに空のヘッダー値を指定して、ヘッダー行を単純に削除することもできます。
ps -p 29492 -L -o pid=,tid=,psr=,pcpu= | sort -n -k4,4
-r
これらすべての場合にパラメータを追加して順序を変更できますsort
。ソート順序はまたLC_NUMERIC
はの影響を受ける可能性がありますLC_ALL
。設定はLC_ALL=C
小数点を使用して値を正しくソートします.
。