ps
次のようなコマンドがあるとします。
ps -Ao args:80,time,user --sort time
それは私に「スペース」で区切られた行のセットを与えます。行は次のようになります
paulnath -bash 00:00:00
他の言語で自動的に処理できるように、psをコンマ(またはタブでも!)で区切るように説得したいと思います。argsにはおそらくスペースが含まれているため、フィールドでの起動自体は機能しないことに注意してください。
次の構文を使用して、独自の区切り文字を配置できます。
ps -Ao "%U,%t,%a"
どうですか:
ps -Ao args:80,time,user --sort time |
sed 's/\([[:digit:]]\{2\}:\)\{2\}[[:digit:]]\{2\}/,\0,/'
これは、時間などの形式に影響され、プロセスにコンマがないことを前提としています。それらは可能ですが、それを回避したい場合は、明らかにもっと複雑です。
から必要な情報を取得することをお勧めします/proc/[0-9]*/
。psの出力よりもプログラムでアクセスしやすいと思います。