sed は範囲のパターンを正確に一致させ、そこから行を抽出します。

sed は範囲のパターンを正確に一致させ、そこから行を抽出します。

私は範囲を抽出しようとしていますIP=TUAL_HOSTNAME_=,以下のように。

しかし、IP の他の一致パターンも抽出します。

sed -i -e '/IP=/,/TUAL_HOSTNAME_=/{w /tmp/101' -e 'd}' /tmp/install;
#IP=
#AS_HOSTNAME=
#ASDM_USERID=
#ASRP_GROUPID=
#D_HOSTNAME=
#ASE_NODENAME=
#ASE_HOSTNAME=
#PP_NAME_1=
#USTER_NAME_1=
#NITIAL_HEAPSIZE_1=
#AX_HEAPSIZE_1=
#TUAL_HOSTNAME_1=
#
#
#
sed -i "s/^$IP\(.*\)$/$IP\1 $AS_HOSTNAME/" /etc/hosts;
#
#
#
#
sed -e '/PF/,/PF1/{w /tmp/wserver' -e 'd}' "$ASCRPT";

正確なパターンを一致させて抽出する方法はありますか。

ありがとう

ラジェシュ

答え1

内容が一致していないことに気付きましたTUAL_HOSTNAME_=。また、コマンドの後にセミコロンがありませんd。次を試してください:

sed -i -e '/IP=/,/TUAL_HOSTNAME_[0-9]*=/{w /tmp/101' -e 'd;}' /tmp/install

関連情報