この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'

あなたの場合はそれで十分ですか?

関連情報