На самом деле awk
- это точно инструмент, на который вы должны обратить внимание:
ps axu | grep '[j]boss' | awk '{print $5}'
или вы можете вообще отказаться от grep
, так как awk
знает о регулярных выражениях:
ps axu | awk '/[j]boss/ {print $5}'
Но если по какой-то причудливой причине вы действительно не можете использовать awk
, есть и другие более простые вещи, которые вы можете сделать, например свертывание всех пробелов в один пробелво-первых:
ps axu | grep '[j]boss' | sed 's/\s\s*/ /g' | cut -d' ' -f5
Этот трюк grep
, кстати, является изящным способом получить только процессы jboss
, а не grep jboss
(то же самое для awk
также вариант).
Процесс grep
будет иметь литерал grep [j]boss
в своей команде процесса, поэтому он не будет перехвачен самим grep
, который ищет класс символов, за которым следует [j]
boss
.
Это отличный способ избежать парадигмы | grep xyz | grep -v grep
, которую используют некоторые люди.