Генерация списка CSV из Linux 'ps' - PullRequest
8 голосов
/ 25 июня 2010

Предположим, у меня есть команда ps, которая выглядит следующим образом:

ps -Ao args:80,time,user --sort time 

Это даст мне разделенный пробелами ряд строк. Строка может выглядеть следующим образом

paulnath -bash 00:00:00

Я хотел бы убедить ps разделить запятыми (или даже табуляциями!), Чтобы они могли автоматически обрабатываться другими языками. Обратите внимание, что в аргументах args, вероятно, будут пробелы, поэтому работа по полям не будет работать сама по себе.

Ответы [ 3 ]

15 голосов
/ 17 июня 2012

Вы можете использовать следующий синтаксис для установки собственного разделителя:

ps -Ao "%U,%t,%a"
0 голосов
/ 25 июня 2010

Как насчет:

ps -Ao args:80,time,user --sort time | 
sed 's/\([[:digit:]]\{2\}:\)\{2\}[[:digit:]]\{2\}/,\0,/'

Это зависит от формата, включая время, и предполагает, что процессы не имеют запятых. Они могут, но если вы хотите убежать, это явно сложнее.

0 голосов
/ 25 июня 2010

Возможно, вы захотите получить необходимую информацию из / proc / [0-9] * /. Я думаю, вы найдете его более программно доступным, чем вывод ps.

...