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

相关内容