Ось єдине рішення поки що для MacOS:
top -pid `pgrep java | awk 'ORS=" -pid "' | sed 's/.\{6\}$//'`
хоча про це буде небажано повідомляти, invalid option or syntax: -pid
якщо немає жодних java
процесів.
ПОЯСНЕННЯ
Інші рішення, розміщені тут, використовують цей формат top -p id1,id2,id3
, але MacOS top
підтримує лише громіздкий формат top -pid id1 -pid id2 -pid id3
.
Отже, по-перше, ми отримуємо список ідентифікаторів процесу, які мають назву процесу „java“:
pgrep java
і ми передаємо це, awk
що поєднує результати з роздільником" -pid "
| awk 'ORS=" -pid "'
На жаль, це залишає кінцевий роздільник! Наприклад, ми досі могли отримати рядок "123 -pid 456 -pid 789 -pid "
.
Потім ми просто використовуємо, sed
щоб збрити останні 6 символів роздільника.
| sed 's/.\{6\}$//'`
Ми готові передати результати top
:
top -pid `...`