如何解决包含数字
我想grep获取具有变量的进程路径。范例- 这是运行过程之一。
/var/www/vhosts/rcsdfg/psd_folr/rcerr-m-deve-udf-172/bin/magt queue:consumers:start customer.import_proditns --single-thread --max-messages=1000
我想从正在运行的进程中为“ psd_folr / rcerr-m-deve-udf-172 / bin / magt队列” 进行grep。 问题是数字172一直在变化,但是它只会是3位数字。请建议,我在下面尝试过,但未返回任何输出。
sudo ps axu | grep "psd_folr/rcerr-m-deve-udf-'^[0-9]$'/bin/magt queue"
解决方法
正则表达式中最相关的部分是-'^[0-9]$'/
,它存在以下问题:
- 除了读撇号 ,撇号对grep没有句法含义
- 插入符号
^
与行的开头匹配,但是ps
的输出中此位置没有行的开头 - 美元
$
与行尾匹配,但是ps
在此位置的输出中没有行尾 - 您想读取3位数字,但是
[0-9]
仅匹配一个数字
因此,应该像这样-[0-9]+/
来修改表达式的部分,以匹配任意数量的数字(+
匹配前一个字符多次,但至少匹配一次),或者像这样{{ 1}}精确匹配三遍(-[0-9]{3}/
与前面的字符精确匹配{n}
次)。
如果您更改命令,请给n
grep
标志,使其使用扩展的正则表达式,否则您需要转义加号或花括号:
-E
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。