首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一系列命令的派生输出来执行pstree -p命令中的egrep

使用一系列命令的派生输出来执行pstree -p命令中的egrep
EN

Unix & Linux用户
提问于 2018-09-26 10:26:42
回答 1查看 175关注 0票数 0

我有下面的长一行,它本质上提供了一个带有‘\’delim字符的PID列表

代码语言:javascript
复制
echo $(lsof -p $(pgrep -f dosemu | tr '\012' ,) | grep '/media/datadrv' | awk '{print $2" - " $9}' | grep 'DBASE1.RES' | awk '{print $1}') | sed 's/\s\+/|/g'

这个输出类似于19066|19500

我想要做的是使用它来使用pstree命令输入egrep

例如,下面的命令为我提供了我需要的

代码语言:javascript
复制
pstree -p | egrep '19066|19500'

我无法理解的是如何将第一个命令的结果输入第二个命令。

更新感谢Goro的回答,完整的一行是:-

代码语言:javascript
复制
pstree -p | egrep $(echo $(lsof -p $(pgrep -f dosemu | tr '\012' ,) | grep '/media/datadrv' | awk '{print $2" - " $9}' | grep 'DBASE1.RES' | awk '{print $1}') | sed 's/\s\+/|/g')
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-09-26 10:49:45

您可以给线性一个变量名。

代码语言:javascript
复制
var=$(echo $(lsof -p $(pgrep -f dosemu | tr '\012' ,) | grep '/media/datadrv' | awk '{print $2" - " $9}' | grep 'DBASE1.RES' | awk '{print $1}') | sed 's/\s\+/|/g')

然后将var输入pstree,如下所示:

代码语言:javascript
复制
pstree -p $var

如果您想输入一个数字19066|19500,您可以使用sed|转换为选项卡\t,然后将感兴趣的数字按如下方式表示:

代码语言:javascript
复制
first_number=$(echo ${var} | sed 's/|/\t/g' | awk '{print $1}' )
19066
 pstree -p ${first_number}
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/471547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档