pstree -p コマンドで egrep を使用した一連のコマンド派生出力

pstree -p コマンドで egrep を使用した一連のコマンド派生出力

デフォルトでは、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'

最初のコマンドの結果を2番目のコマンドに供給する方法がわかりません。

修正する 回答ありがとうございました。完全な行は次のとおりです。

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')

ベストアンサー1

線形変数の名前を指定できます。

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使用できる数字の1つを入力したい場合は、興味のある数字は次のとおりです。sed|\tawk

first_number=$(echo ${var} | sed 's/|/\t/g' | awk '{print $1}' )
19066
 pstree -p ${first_number}

おすすめ記事