Gov*_*las 4 process kill regular-expression
我有几个运行如下的java进程,
java -jar /my/path/to/app/myapp.jar
java -jar /my/path/to/app/prodapp.jar
java -jar /my/path/to/app/testapp.jar
java -jar /my/path/to/app/myapp_v.01.jar
现在我可以杀死一个pkill -f myapp.jar
按预期工作的特定进程。我如何使用正则表达式杀死 myapp_v.01.jar,我试过了pkill -f myapp_*.jar
。这个正则表达式有什么问题?
我不是在为 寻找替代方案pkill
,我想知道为什么正则表达式不起作用。
为此,您需要了解正则表达式的基础知识。该*
修改并不意味着“什么”,因为它往往是假设。星号在 shell 中具有此含义,但这是不同的,而不是正则表达式。*
意思是:取前一个字符(或一组字符,如果前面是一个[]
组)并尝试在零到无限次出现之间匹配它。
因此,您实际检查的myapp_*.jar
是进程列表中是否存在以下任何一项:
我的应用程序文件 myapp_.jar myapp__.jar 我的应用___.jar ...
明白了吗?它在任何方面都不匹配“myapp_v.01.jar”。如果你想匹配任何字符,你将需要.
. 所以你的正则表达式pkill
可能是:myapp_*.*.jar