Shellを使用してXで始まり、Yで終わる文字列を取得する方法

Shellを使用してXで始まり、Yで終わる文字列を取得する方法

ABCXXX.XXX.XXX以下に記載されている動的文字列がありますが、ここで文字まで文字列を取得したいと思います,。開始文字は大文字でのみ固定され、(ABC)終了文字もcomまたはで固定されますXcom

文字列は次のとおりです。

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

シェルスクリプトを使って切り取るのに役立つ人はいますか?

ベストアンサー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

おすすめ記事