Unix Shell 提取文本问题--在线等!!!!
时间:2011-03-14
来源:互联网
各位Unix大虾,我想请教一个Unix 抽取文本信息的问题。
比如使用ps命令过滤出以下进程信息,我把它们输出到一个process.temp的文件里面(ps -ef | grep … > process.temp)
25604 sh -c GetNLoadReutersMaintD.sh -j RTEQCHD -c 60
25617 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersMaintD.s
14068 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j RT
1256 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_reut
1411 MessageMapper --outputdir=/export/applications/ftiaip/prod/boxv
28068 sh -c GetNLoadReutersPriceD.sh -j RTEQPRCD -c 60
28078 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersPriceD.s
5356 /bin/ksh /export/applications/datman/prod/bin/load_reuters_prices.s
5654 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j
7698 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_re
7780 MessageMapper --outputdir=/export/applications/ftiaip/prod/bo
5634 sh -c (DM_PAGE_SEV_LVL=0 load_bloomberg.sh -j BBGBACHL -c EURO)
5846 /bin/ksh /export/applications/datman/prod/bin/load_bloomberg.sh -j BB
6856 /bin/ksh runmap_bb_govtagency -c Default173 -i 173 -m /export/appli
7019 MessageMapper --mapparameter=DataType=BBGOVTA --config=Default173
请问我如何才能用循环分别把每一个进程树分别提取出来,如果是使用 ps等组合命令,两个循环来组成命令(kill),我已经实现,只是速度太慢。
如:
25604 sh -c GetNLoadReutersMaintD.sh -j RTEQCHD -c 60
25617 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersMaintD.s
14068 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j RT
1256 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_reut
1411 MessageMapper --outputdir=/export/applications/ftiaip/prod/boxv
我的目的是分别生成命令:
kill 1411 1256 14068 25617 25604 ---(第一个进程树,下面依次类推)
比如使用ps命令过滤出以下进程信息,我把它们输出到一个process.temp的文件里面(ps -ef | grep … > process.temp)
25604 sh -c GetNLoadReutersMaintD.sh -j RTEQCHD -c 60
25617 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersMaintD.s
14068 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j RT
1256 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_reut
1411 MessageMapper --outputdir=/export/applications/ftiaip/prod/boxv
28068 sh -c GetNLoadReutersPriceD.sh -j RTEQPRCD -c 60
28078 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersPriceD.s
5356 /bin/ksh /export/applications/datman/prod/bin/load_reuters_prices.s
5654 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j
7698 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_re
7780 MessageMapper --outputdir=/export/applications/ftiaip/prod/bo
5634 sh -c (DM_PAGE_SEV_LVL=0 load_bloomberg.sh -j BBGBACHL -c EURO)
5846 /bin/ksh /export/applications/datman/prod/bin/load_bloomberg.sh -j BB
6856 /bin/ksh runmap_bb_govtagency -c Default173 -i 173 -m /export/appli
7019 MessageMapper --mapparameter=DataType=BBGOVTA --config=Default173
请问我如何才能用循环分别把每一个进程树分别提取出来,如果是使用 ps等组合命令,两个循环来组成命令(kill),我已经实现,只是速度太慢。
如:
25604 sh -c GetNLoadReutersMaintD.sh -j RTEQCHD -c 60
25617 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersMaintD.s
14068 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j RT
1256 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_reut
1411 MessageMapper --outputdir=/export/applications/ftiaip/prod/boxv
我的目的是分别生成命令:
kill 1411 1256 14068 25617 25604 ---(第一个进程树,下面依次类推)
作者: mobiebie 发布时间: 2011-03-14
ps出来后直接干掉不就行了?干嘛还要绕一下,每个进程去杀?
kill `ps -ef|grep ...|grep -v "grep"|awk '{print $2}'`
kill `ps -ef|grep ...|grep -v "grep"|awk '{print $2}'`
作者: dzhxc 发布时间: 2011-03-14
哈哈,谢谢,终于有人回答。
第一,直接杀掉有风险,因为作的是投资银行的支持,一个不小心损失担当不起啊。
第二,用你的命令可能杀不干净,要从每个独立进程的子进程开始杀。
复制代码
比如上面三个进程
每个都要独立地 从子进程杀到父进程。至于为什么我也不清楚,我不是现在系统的开发团队,他们给的指示就是那样杀的。
分别生成命令的目的是让上倒班的同事可以再核实一便,因为风险问题。
无论怎么样,还是很感谢,这是我第一次发贴
第一,直接杀掉有风险,因为作的是投资银行的支持,一个不小心损失担当不起啊。
第二,用你的命令可能杀不干净,要从每个独立进程的子进程开始杀。
- 25604 sh -c GetNLoadReutersMaintD.sh -j RTEQCHD -c 60
- 25617 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersMaintD.s
- 14068 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j RT
- 1256 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_reut
- 1411 MessageMapper --outputdir=/export/applications/ftiaip/prod/boxv
- 28068 sh -c GetNLoadReutersPriceD.sh -j RTEQPRCD -c 60
- 28078 /bin/ksh /export/applications/datman/prod/bin/GetNLoadReutersPriceD.s
- 5356 /bin/ksh /export/applications/datman/prod/bin/load_reuters_prices.s
- 5654 /bin/ksh /export/applications/datman/prod/bin/load_reuters.sh -j
- 7698 /bin/ksh /export/applications/ftiaip/prod/boxv2r1/bin/runmap_re
- 7780 MessageMapper --outputdir=/export/applications/ftiaip/prod/bo
- 5634 sh -c (DM_PAGE_SEV_LVL=0 load_bloomberg.sh -j BBGBACHL -c EURO)
- 5846 /bin/ksh /export/applications/datman/prod/bin/load_bloomberg.sh -j BB
- 6856 /bin/ksh runmap_bb_govtagency -c Default173 -i 173 -m /export/appli
- 7019 MessageMapper --mapparameter=DataType=BBGOVTA --config=Default173
每个都要独立地 从子进程杀到父进程。至于为什么我也不清楚,我不是现在系统的开发团队,他们给的指示就是那样杀的。
分别生成命令的目的是让上倒班的同事可以再核实一便,因为风险问题。
无论怎么样,还是很感谢,这是我第一次发贴
作者: mobiebie 发布时间: 2011-03-14
格式因为进程名太长,实际格式是
123 xxxxxxxxx
1234xxxxxxxxx
3234xxxxxxxx
321 xxxxxxxx
232xxxxxxxxx
454xxxxxxxx
123 xxxxxxxxx
1234xxxxxxxxx
3234xxxxxxxx
321 xxxxxxxx
232xxxxxxxxx
454xxxxxxxx
作者: mobiebie 发布时间: 2011-03-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28