С помощью gnu awk вы можете сделать что-то простое вроде этого:
awk -F '---' '
{ gsub(/.{50,60} /,"&\n ",$2)
printf "%-10s %s\n", $1, $2 }'
Для более точной обработки длинных слов в версии с длинным текстом:
awk -F '---' '
{ printf "%-10s ", $1
n = split($2,x," ")
len = 11
for(i=1;i<=n;i++){
if(len+length(x[i])>=80){printf "\n "; len = 11}
printf "%s ",x[i]
len += 1+length(x[i])
}
printf "\n"
}'
Хорошо ... Я обнаружил, что это дополнительная документация по awk
, извините за беспокойство:
ps aux | awk '$1~/user4/ && $3> 0'
или в качестве альтернативы
ps -u user4 -o pcpu,args | awk '$1>0'
см. man ps
для аргументации -o
, некоторым аргументом может быть cputime, etime, args , comm, tty