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

相關內容