SED正規表現はEOFと一致し、置換/挿入します。

SED正規表現はEOFと一致し、置換/挿入します。

次のコマンドを使用してアンカー(正規表現パターン)を正常に見つけ、それをファイル(ファイルパス)内のパラメータ値に置き換えました。

sed -i $"/$ANCHOR/i \\$PARAMVALSEDINS" "$FILEPATH"

私にとって必要なのは、私のアンカーが「」(空)のときに私のEOFを一致させ、そこで交換を実行することです。

だから私は次のことを想像しています。

ANCHOR = ''の場合はANCHOR = '$ EOF'なので、SEDは正常にEOFを見つけて交換を進めます。

これは可能ですか?これ以外には具体的な内容が見つかりません。

sed -i -e "\$aPARAMVALSEDINS" "$FILEPATH"

ただし、これにはANCHOR変数は含まれません。私の質問に答えることができない場合は、これを実装します。

PS。もちろん、まったく異なるアプローチを使用することもできます。正規表現マッチングと正規表現領域内のEOFマッチングに役立つ他のコマンドを使用してこれを行う方法はありますか?たとえば、$ANCHOR が EOF と一致する別の -i $"/$ANCHOR/i \$PARAMVALSEDINS" "$FILEPATH"

ありがとう

ベストアンサー1

[[ -z $ANCHOR ]] && ANCHOR='$' || ANCHOR="/$ANCHOR/"
sed -i "${ANCHOR}i \\$PARAMVALSEDINS" "$FILEPATH"

おすすめ記事