Como sed e colocar de volta a parte da partida? [duplicado]

2

Então, esses são os textos originais:

$ printf 'bbb\nb2b\n'
bbb
b2b

Isso é o que estou fazendo

$ printf 'bbb\nb2b\n' | sed 's/^b[0-9]/XXX/g'
bbb
XXXb

E esta é a saída que eu quero: D

$ printf 'bbb\nb2b\n' | SOME_SED_MAGIC
bbb
XXX2b

A minha pergunta : Como posso trocar o "b2b" por "XXX2b", por isso recoloquei o "2" do fósforo sed? "2" pode variar.

    
por evachristine 17.03.2014 / 10:47

1 resposta

4

Você pode usar backreference :

$ printf 'bbb\nb2b\n' | sed 's/^b\([0-9]\)/XXX/'
bbb
XXX2b

(BTW, você não precisa do sinalizador g , já que o regex pode corresponder apenas uma vez por causa do ^ ).

    
por 17.03.2014 / 10:52

Tags