如何使用 Shell 获取以 X 开头到以 Y 结尾之间的字符串

如何使用 Shell 获取以 X 开头到以 Y 结尾之间的字符串

我有下面提到的动态字符串,我想在其中获取ABCXXX.XXX.XXX字符串直到,字符。起始字符仅大写固定(ABC),结束字符也固定comXcom

字符串可以是这样的:

S1= "10.10.10.10 (XXXX,ABC123.sub.domain.Xcom,XXX,XX - abc123 ) ANY
S2= "10.10.10.10 (ABC567.subd.domain.com, - ) ANY

输出想要:

S1= ABC123.sub.domain.com
S2= ABC567.subd.domain.Xcom

我试过 :

 $1=ABC  # argument
 echo $S1| grep -o -P '(?=<$1).*(?=com,)' 

输出得到:

123.sub.domain.X   # But it should be ABC123.sub.domain.Xcom

谁能帮忙用shell脚本来剪切它?

答案1

希望这对你有用。

$ S1= "10.10.10.10 (XXXX,ABC123.sub.domain.Xcom,XXX,XX - abc123 ) ANY
$ echo $S1 | grep -o "ABC.*com" 
ABC123.sub.domain.Xcom

相关内容