単一のCSV行からPSセクションの出力を取得する

単一のCSV行からPSセクションの出力を取得する

文字列に一致するいくつかのプロセスのCPU消費量を収集する必要がありますが、コマンドで区切られた行にある必要がありますpsgrepawk

ユースケース:

  • 私が使用するコマンド:
ps aux | grep tx | grep -v grep | awk {'print $11":"$3'}
  • 出力:
/opt/tx/bin/server:5.2
/opt/tx/bin/engine:1.2
/opt/tx/bin/agent:0.3
  • 私は何を得るべきですか?:
/opt/tx/bin/server:5.2,/opt/tx/bin/engine:1.2,/opt/tx/bin/agent:0.3

みんなに乾杯

答え1

以下を使用して同じ効果を得ることができます。

ps -e -o command,pcpu | awk -v OFS=: -v ORS=, '/tx/ {print $1, $NF}' | sed 's/,$/\n/'

これはps、オプションを使用して列をフィルタリングし、AWKを使用して出力をフィルタリングし、一致する各行の最初と最後の項目を保持し、フィールドとレコードの区切り文字を変更し、末尾のカンマを改行文字に置き換えます。

関連情報