私はspecファイルとshファイルの2つのファイルを持っています。sedコマンド - specファイルから値を取り出し、shファイルの変数に割り当てます。
specファイルの変数は値を保持します。私はその変数の値をshファイル内の別の変数に代入したいと考えています。
specファイルには以下が含まれています。
HOSTID=10
と変数は、shのファイルにあります:
ACTIVE_HOSTID=
私はスペックファイルに次のsedコマンドを使用していました。
sed "s/$HOSTID/ACTIVE_HOSTID/g" spec_file>sh_file
誰でも私にこれを手伝ってもらえますか?
EDIT:
マイspecファイルは次のようになります。今、私はHOSTIDからACTIVE_HOSTIDの値を取得する必要があり
ACTIVE_HOSTID=
BACKUP_SERVER_HOSTID=
EXTENDED_SUFFIX=
EXTRA_SYSPROPERTIES=
:
HOSTID=`ip addr | grep ether | awk '{print $2}' | head -n 1 | sed -e 's/\://g'`
私のshファイルは次のようになります。
EDIT 2:
私は次のことを試してみました:
sed -i "s/ACTIVE_HOSTID=.*/ACTIVE_HOSTID=HOSTID/" sh_file
それは文字列 "HOSTID" ではなく、その値をACTIVE_HOSTIDを置き換えています。 そして、私は
sed -i "s/ACTIVE_HOSTID=.*/ACTIVE_HOSTID=$HOSTID/" sh_file
ACTIVE_HOSTIDのような「$」を使用している場合ので、私はここに例を取っていINPUT_FILEあなたが任意のサンプルを示していないので、まだ
$ HOSTIDは何を試すことができます それはsedを持つのは難しいですか?このsed行はスクリプトで実行されていますか?あなたは変数で何もしていませんが、あなたはその言葉を使い続けます。あなたの 'shファイル 'はどのように見えますか、実行したいことが何であれ実行したら、それをどのように見たいのですか? – JNevill
このsedは仕様ファイルにあります。 HOSTIDとACTIVE_HOSTIDは変数です。 –
これは意味をなさない。 'sed'コマンドがspecファイルにある場合、なぜ入力ファイルとしてspecファイルも読み込んでいますか? – Barmar