이 sed oneliner를 어떻게 업데이트할 수 있나요?

이 sed oneliner를 어떻게 업데이트할 수 있나요?

입력하다:

 $ echo -e 'AAAART5530408XXXX\nAAAAZE6530408XXXX\nAAAART12345678XXXX'
AAAART5530408XXXX
AAAAZE6530408XXXX
AAAART12345678XXXX
$

산출:

 $ echo -e 'AAAART5530408XXXX\nAAAAZE6530408XXXX\nAAAART12345678XXXX' | sed -e 's/\(AAAA[A-Z]\{2\}[0-9]\{7\}\)XXXX/\n\1/g'

AAAART5530408

AAAAZE6530408
AAAART12345678XXXX
$   

어떻게 연장할 수 있나요?

sed -e 's/\(AAAA[A-Z]\{2\}[0-9]\{7\}\)XXXX/\n\1/g'

선택적으로 허용할 수 있도록 sed oneliner

sed -e 's/\(AAAA[A-Z]\{2\}[0-9]\{8\}\)XXXX/\n\1/g'

그것도 8이라는 숫자인가요? (단지 7개가 아님) ​​1sed만 사용 가능한가요?

답변1

구성은 \{7\}"최소 일치 및 최대 일치"의 간단한 경우입니다. 귀하의 경우에는 다음과 같습니다.\{m,n\}mn

sed -e 's/\(AAAA[A-Z]\{2\}[0-9]\{7,8\}\)XXXX/\n\1/g'

어쩌면 간단한 것일 수도 있습니다.

sed -s 's/XXXX//g'

귀하의 경우에는 그것으로 충분합니까?

관련 정보