[标签]: 正则表达式
问题详情的描述或方案目标的预期:
正则表达式
【解决方案】
1.从0-500的整数 -- 用于过滤掉top中前500的系统进程
^(500|[1-4]{0,1}\d{0,1}\d)
^(500|[1-4]{0,1}[0-9]{0,1}[0-9])
或者也可以写成如下更好理解的式子:
^(500|[1-4]\d\d|\d{1,2})
^(500|[1-4][0-9]{2}|[0-9]{1,2})
500:直接匹配数字500
[1-4]\d\d:匹配100到499之间的数字,其中[1-4]表示1到4之间的任意一个数字,\d\d表示两位数字
\d{1,2}:匹配1到99之间的数字,其中\d{1,2}表示一位到2位数字
通过组合这些部分,表达式能够覆盖0到500之间的所有整数
2.过滤top中进程PID为前500的系统进程
top -bn1 |egrep "^ *(500|[1-4]{0,1}[0-9]{0,1}[0-9]) "
或者这样写:
top -bn1 |egrep "^ *(500|[1-4][0-9]{2}|[0-9]{1,2}) "
-- 行首、前后空格以此锁定进程号的首列位置
3.常见高阶正则
[abc] 匹配任何包含小写字母 a、b、c 的字符串
[^abc] 匹配任何不包含小写字母 a、b、c 的字符串
\w 匹配任何包含 a -zA-Z0-9 和下划线的字符串
\W 匹配任何没有下划线和字母数字的字符串
\d 匹配任何数字字符,和[0-9]相同
\D 匹配任何非数字字符,和[^0-9]相同
\s 匹配任何空白字符
\S 匹配任何非空白字符
总结:不要忘记长期积累正向小事。