免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3577 | 回复: 14
打印 上一主题 下一主题

这个grep的精确匹配怎么写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-24 10:23 |只看该作者 |倒序浏览
$1表示tomcat_pay,tomcat_api,tomcat_kuaidi,tomcat_kudidioss
PID=`ps aux | grep $1 |grep -v grep |awk '{print $2}'`
kill -9 $PID
对于tomcat_pay和tomcat_api来说杀掉是没有问题,但是tomcat_kuaidi,tomcat_kudidioss由于前缀是相同,所以只要$1是tomcat_kuaidi一下子就kill掉了两个,请问如何去精确匹配,避免同时杀掉tomcat_kuaidi和tomcat_kudidioss,非常感谢

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2011-03-24 10:32 |只看该作者
echo "tomcat_pay,tomcat_api,tomcat_kuaidi,tomcat_kudidioss"|grep -o tomcat_kuaidi
tomcat_kuaidi

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2011-03-24 10:32 |只看该作者
怎么会呢?除非你grep tomcat_

论坛徽章:
0
4 [报告]
发表于 2011-03-24 10:47 |只看该作者
grep -o 过滤出一堆呢.
root@project2:/usr/local# ps axu|grep tomcat_kuaidi
root     12966  1.0  0.7 1008768 64812 pts/3   Sl   10:43   0:02 /usr/local/jdk1.6/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_kuaidioss/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms64M -Xmx512M -XX:MaxPermSize=256M -Djava.endorsed.dirs=/usr/local/tomcat_kuaidioss/endorsed -classpath /usr/local/tomcat_kuaidioss/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat_kuaidioss -Dcatalina.home=/usr/local/tomcat_kuaidioss -Djava.io.tmpdir=/usr/local/tomcat_kuaidioss/temp org.apache.catalina.startup.Bootstrap start
root     13587  1.6  6.3 3147600 516804 ?      Sl   Mar23  19:03 /usr/local/jdk1.6/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_kuaidi/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms512M -Xmx2048M -XX:MaxPermSize=512M -Djava.endorsed.dirs=/usr/local/tomcat_kuaidi/endorsed -classpath /usr/local/tomcat_kuaidi/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat_kuaidi -Dcatalina.home=/usr/local/tomcat_kuaidi -Djava.io.tmpdir=/usr/local/tomcat_kuaidi/temp org.apache.catalina.startup.Bootstrap start
root@project2:/usr/local# ps axu|grep tomcat_kuaidi|grep -v grep |grep -o tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi
tomcat_kuaidi

论坛徽章:
0
5 [报告]
发表于 2011-03-24 10:58 |只看该作者
java下面一行有多个tomcat_kuaidi字符串

论坛徽章:
0
6 [报告]
发表于 2011-03-24 11:15 |只看该作者
有没有办法直接定位到tomcat_kuaidi,然后我就可以找出PID杀掉了.不影响tomcat_kuaidioss

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2011-03-24 11:21 |只看该作者
有一堆就uniq掉

论坛徽章:
0
8 [报告]
发表于 2011-03-24 11:27 |只看该作者
grep -o 不行,这样我就awk '{print $2}'不行了.目的是为了找出PID的.不是tomcat_kuaidi,你看看
root@project2:~# ps axu|grep tomcat_kuaidi|grep -v grep
root     12966  0.4  1.9 1107468 156188 ?      Sl   10:43   0:10 /usr/local/jdk1.6/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_kuaidioss/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms64M -Xmx512M -XX:MaxPermSize=256M -Djava.endorsed.dirs=/usr/local/tomcat_kuaidioss/endorsed -classpath /usr/local/tomcat_kuaidioss/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat_kuaidioss -Dcatalina.home=/usr/local/tomcat_kuaidioss -Djava.io.tmpdir=/usr/local/tomcat_kuaidioss/temp org.apache.catalina.startup.Bootstrap start
root     13587  1.7  6.3 3183580 522440 ?      Sl   Mar23  20:33 /usr/local/jdk1.6/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_kuaidi/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms512M -Xmx2048M -XX:MaxPermSize=512M -Djava.endorsed.dirs=/usr/local/tomcat_kuaidi/endorsed -classpath /usr/local/tomcat_kuaidi/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat_kuaidi -Dcatalina.home=/usr/local/tomcat_kuaidi -Djava.io.tmpdir=/usr/local/tomcat_kuaidi/temp org.apache.catalina.startup.Bootstrap start

root@project2:~# ps axu|grep tomcat_kuaidi|grep -v grep |grep -o tomcat_kuaidi|uniq|awk '{print $2}'
输出为空
root@project2:~#

论坛徽章:
0
9 [报告]
发表于 2011-03-24 11:29 |只看该作者
真正的目的是要:
root@project2:~# ps axu|grep tomcat_kuaidi|grep -v grep|awk '{print $2}'
12966
13587
root@project2:~# ps axu|grep tomcat_kuaidi|grep -v grep|awk '{print "kill -9 "$2}'
kill -9 12966
kill -9 13587

只是先精确找出tomcat_kuaid那行,而不是tomcat_kuaidioss那行.
谢谢楼上的昭襄王

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2011-03-24 11:36 |只看该作者
明白了
grep tomcat_kuaidi[^a-z] t002
root     13587  1.7  6.3 3183580 522440 ?      Sl   Mar23  20:33 /usr/local/jdk1.6/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_kuaidi/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms512M -Xmx2048M -XX:MaxPermSize=512M -Djava.endorsed.dirs=/usr/local/tomcat_kuaidi/endorsed -classpath /usr/local/tomcat_kuaidi/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat_kuaidi -Dcatalina.home=/usr/local/tomcat_kuaidi -Djava.io.tmpdir=/usr/local/tomcat_kuaidi/temp org.apache.catalina.startup.Bootstrap startup
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP