我有下面的长一行,它本质上提供了一个带有‘\’delim字符的PID列表
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。
例如,下面的命令为我提供了我需要的
pstree -p | egrep '19066|19500'我无法理解的是如何将第一个命令的结果输入第二个命令。
更新感谢Goro的回答,完整的一行是:-
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')发布于 2018-09-26 10:49:45
您可以给线性一个变量名。
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,如下所示:
pstree -p $var如果您想输入一个数字19066|19500,您可以使用sed将|转换为选项卡\t,然后将感兴趣的数字按如下方式表示:
first_number=$(echo ${var} | sed 's/|/\t/g' | awk '{print $1}' )
19066
pstree -p ${first_number}https://unix.stackexchange.com/questions/471547
复制相似问题