# first generate a comma-separated list of matching PIDs
pids=$(ps a -o pid,args | awk '/[f]wk/ {print $1}' | xargs | sed -e 's/ /,/g')
# then run top with that list
top -p $pids
ПРИМЕЧАНИЕ: если какие-либо fwk*
процессы были запущены за короткое время между генерацией списка и запуском top
, они не будут включены в отображение.
$ jq -r '.[] |
[ "name:",.name ], [ "groups:",.grp[].name ]
| @tsv' file.json
name: cust1
groups: BA2 GA1 NA1 TR3 TS1
То есть дайте @tsv
два массива, один с именем, а другой с группами. Каждый массив станет отдельной строкой.
В случае, если массив grp
может быть пустым и вы хотите вместо него вставить -
:
$ jq -r '.[] |
[ "name:",.name ], [ "groups:", (.grp // [])[].name // "-" ]
| @tsv' file.json
name: cust1
groups: -
Операция x // y
возвращает x
, если только x
не дает null
или false
, и в этом случае она возвращает y
.
Это также будет обрабатывать случай, когда grp
полностью отсутствует (а не просто пустой массив ).
Используйте "объединение",-j
$ jq -jr '.[]|"name:", " ",.name, "\n","groups:", (.grp[]|" ",.name),"\n"' test_json
name: cust1
groups: BA2 GA1 NA1 TR3 TS1
И с заполнителем
$ jq -jr '.[]|"name:", " ",.name, "\n","groups:", (.grp//[{"name":"-"}]|.[]|" ",.name),"\n"' test_json
name: cust1
groups: -