removido
(usa Nenhuma)
Enviado em 20/04/2021 - 13:46h
Vou me arriscar a responder essa, apesar que já existe um Gênio aqui, msoliver, disposto a te ajudar.
echo MOVIMENTACAO_LOGS_ID0033_NSA000914_DATA20210416 | sed -En 's/(.*)NSA[^_]*(.*)/\1*\2/ p'
Fica:
~ % <<< MOVIMENTACAO_LOGS_ID0033_NSA000914_DATA20210416 sed -En 's/(.*)NSA[^_]*(.*)/\1*\2/ p'
MOVIMENTACAO_LOGS_ID0033_*_DATA20210416
A opção -n do sed é para não imprimir nada a não ser que seja especificado, no caso, ao final da RE tem um p para imprimir.
Já a opção -E é para ativar ERE (extended regex) ao invés do BRE (basic regex).
No ERE, os parênteses tem um significado de grupamento, enquanto no BRE ele não significa nada..
Então a gente separa dois grupos, um antes e um depois de NSA.
No caso, os colchetes informam uma lista de caracteres, e o ^ dentro dos colchetes é uma negação, tipo qualquer caráter que não seja _
Agora não entendi se tu quer que no lugar do NSA coloca um asterisco?