Я могу использовать 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
Как я могу этого добиться?
Если вы используете awk для печати $ 1 (команда) и $ 2 (PID) в обратном порядке ($ 2, $ 1), это предоставляет большую часть необходимой информации. удобный формат. Первый sort
и uniq -c
по-прежнему работают должным образом, что оставляет вам несортированный список
<count> <PID> <command>
Теперь вам просто нужно изменить окончательный sort -rn ...
для сортировки только по
, что тривиально.
Вероятно, вам также следует удалить начальную строку из вывода lsof.