Если допустима фильтрация на основе procmail, вы можете сделать что-то вроде:
:0
* ^To:.*priv@example.com
{
:0
* ^From:.*ali@comp.com
* ^From:.*ola@test.org
maildir_to_deliver_to
:0
some_other_maildir_or_dev_null
}
(Я сам не пробовал, но если вы убедитесь, вы тщательно протестируете это, прежде чем использовать / dev / null
в последнем правиле, чтобы избавиться от «спама».
Вы можете сначала заменить несколько пробелов одним пробелом (или любым другим символом ). См. этот вопрос о том, как это сделать. Затем вы можете использовать cut
, чтобы выбрать столбец (с ), который вы хотите. См. также этот вопрос .
Вы можете явно указать свой собственный разделитель полей в аргументе строки формата при использовании printf()пользовательского стиля вывода -:
$ ps -o '%p,%a,%c,%y'
PID,COMMAND ,COMMAND ,TTY
15742,ps -o %p,%a,%c,%y ,ps ,pts/6
24719,-su ,bash ,pts/6
Вы можете использовать тот факт, что оболочка read
помещает ВСЕ остаточные поля в последнюю переменную и печатает COMMAND последней.
ps -eo pid,cmd,tty,args | while read PID CMD TTY ARG; do echo $PID $CMD $TTY $ARG; done
Вы можете передать $ARG
в awk
или объединить $4
... $NF
в пределах awk
при прямом чтении вывода ps