Daemonio
(usa Slackware)
Enviado em 18/01/2011 - 13:18h
sed 's/.*RMEP \([^ ]*\).*/RMEP-M\1/'
O \1 é o número 165. Veja também que a string toda será substituída devido ao uso do ".*".
E o sed também pode ser usado para capturar string sim e ele não é só um comando de substiuição como todo mundo acha.
O próprio sentido de endereçamento (como visto no tutor do Aurélio) só faz sentido porque o sed consegue capturar/procurar uma string.
O sed pode emular praticamente quase toda opção do grep, tornando-o assim, em alguns casos, desnecessário.
E voltando na sua expressão: O ^ casa no inicio da string. Não faz sentido utilizá-lo aqui. A classe [RMEP] casa somente UM caractere e não a string RMEP como você deve ter pensado.
A expressão [0-9]{3} está correta, mas lembre-se que o padrão do sed é utilizar a sintaxe antiga das regexes, então o certo seria [0-9]\{3\} (veja a opção -r na man page).
Acho que é isso.
t+