Ось єдине рішення поки що для 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 `...`