Как объединить lsof stat и ps, чтобы получить больше информации в одной строке bash-команды

Я могу использовать lsof для получения статистики открытых файлов для процессов, как показано ниже:

$ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5
  17955 11945
  10282 2786
   5980 32152
   1920 27803
   1786 32107

Теперь я хочу расширить результат, как показано ниже, с помощью однострочная команда bash,

$ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5 ...
  17955 11945  java
  10282 2786   python
   5980 32152  ruby
   1920 27803  go
   1786 32107  rust

Как я могу этого добиться?

0
задан 1 March 2016 в 09:01
1 ответ

Если вы используете awk для печати $ 1 (команда) и $ 2 (PID) в обратном порядке ($ 2, $ 1), это предоставляет большую часть необходимой информации. удобный формат. Первый sort и uniq -c по-прежнему работают должным образом, что оставляет вам несортированный список

<count> <PID> <command>

Теперь вам просто нужно изменить окончательный sort -rn ... для сортировки только по , что тривиально.

Вероятно, вам также следует удалить начальную строку из вывода lsof.

2
ответ дан 4 December 2019 в 13:43

Теги

Похожие вопросы