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

관련 정보