他のコマンドに変数として提供されるように、コマンドの出力を変更します。

他のコマンドに変数として提供されるように、コマンドの出力を変更します。

コマンドの出力を変更し、それを変数に保存してから、1行で別のコマンドに渡したいと思います。 xargsを使ってみましたが、うまくいきませんでした。

最初のコマンドは次のとおりです。

echo "DIS NAMELIST(CLUSNL.TO.QMWC.SSL) NAMES"|runmqsc -w 10 -x QMWC |grep NAMES |grep -v DIS

出力は次のとおりです

NAMES(CLDEV.ISCC.74                                   ,CLPRF.ISCC.74                                   ,CLSYS.ISCC.74)

修正された出力はCLDEV.ISCC.74を削除し、修正された出力を変数に保存することです。

NAMES(CLPRF.ISCC.74                                   ,CLSYS.ISCC.74)

新しいコマンドが発行されます。

echo "ALTER NAMELIST(CLUSNL.TO.QMWC.SSL) $VARIABLE"|runmqsc -w 10 -x QMWC |grep NAMES |grep -v DIS

これが目的の出力を取得する方法ですが、それを変数に保存して新しいコマンドに渡す方法を見つけようとしています。

`echo "DIS NAMELIST(CLUSNL.TO.QMWC.SSL) NAMES"|runmqsc -w 10 -x QMWC |grep NAMES |grep -v DIS|sed 's/CLDEV.ISCC.74`                                   ,//'

ベストアンサー1

結果をCLDEV.ISCC.74...,変数に保存するには、VARIABLE次のようにします。

VARIABLE=$(echo "DIS NAMELIST(CLUSNL.TO.QMWC.SSL) NAMES"|runmqsc -w 10 -x QMWC |grep NAMES |grep -v DIS | sed 's/CLDEV\.ISCC\.74[[:space:]]*,//')

新しいコマンドは期待どおりに機能するはずです。

おすすめ記事