Если dladm show-dev -s...
выводит необходимую статистику, либо используйте команду dladm show-dev -s
без параметра -i 1
, чтобы она распечатывалась только один раз, либо, если вам нужно несколько строк вывода, чтобы получить моментальный снимок текущих показателей использования, вы может тайм-аут команды.
Проще всего использовать утилиту timeout
, но я не знаю, доступна ли она в Solaris 10:
timeout 5 dladm show-dev -s -i 1
В качестве альтернативы, в bash, доступном в Solaris 10:
( dladm show-dev -s -i 1 ) & sleep 5; kill $!
(Также обратите внимание, что команда dladm
в Solaris 11 существенно отличается от команды dladm
в Solaris 10. Я не думаю, что dladm show-dev -s...
работает в Solaris 11.)
Используйтеgrep
:
grep -rhoE '[[:alnum:].!#$%&'\''*+/=?^_`{|}~-]+@[[:alnum:].]+'.
или, возможно,:
grep -rhoP '(?:[a-z0-9!#$%&'\''*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'\''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])'.
(на основе информации , найденной в stackoverflow)
По вопросу:
.*
попробуйте инвертировать класс символов, используемый в подвыражении. Например:sed -nE -e 's/[^[:alnum:]._-]*([[:alnum:]._-]+@[[:alnum:]._-]+)[^[:alnum:]._-]*/\1\
/gp'
FWIW Я использую этот ERE (, поэтому он будет работать в grep -E
, sed -E
, awk
, perl
и т. д.):
[0-9a-zA-Z._%+-]+@[0-9a-zA-Z.-]+\.[a-zA-Z]{2,}
на основе регулярного выражения вhttp://www.regular-expressions.info/email.html. Добавьте границы слов, если ваш инструмент поддерживает их, без примера ввода/вывода я не могу предложить ничего другого для ограничения адресов электронной почты. Я специально не использую классы символов, поэтому я получаю только английские буквы, так как это лучше всего подходит для моего приложения.