Como posso atualizar este sedeliner?

0

ENTRADA:

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

OUTPUT:

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

AAAART5530408

AAAAZE6530408
AAAART12345678XXXX
$   

Como posso estender o:

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

sed oneliner, para aceitar opcionalmente

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

8 números também? (não apenas 7) É possível com apenas 1 sed?

    
por gasko peter 14.03.2013 / 17:58

1 resposta

1

A construção \{7\} é um caso simples de \{m,n\} para "corresponde pelo menos a m e no máximo a n , no seu caso, será:

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

Talvez seja simples:

sed -s 's/XXXX//g'

é suficiente no seu caso?

    
por 14.03.2013 / 18:11

Tags