REGEX Localizar string no caminho e excluir parte da string

0

Espero que seja fácil. Eu estou usando o REG_EXTRACT no Informatica para extrair um nome de arquivo de uma variável. Ele usa regex para identificar o que extrair. Aqui está o meu exemplo. Este é o nome do meu arquivo com o caminho do arquivo quando ele entra no powercenter.

FILENAME=/test_files/infa_test/nippy/SrcFiles/JUNK/JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv
REG_EXTRACT($FILENAME,'^\/(.+\/)*(.+)$',2).  

O produz JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv . Estou tendo dificuldade em escrever o argumento regex para extrair apenas o file_name após JUNK /, mas antes _SPINK como 'JUNK_OPS'. Os sublinhados variam de arquivo para arquivo, mas '_SPINK' sempre aparecerá depois do que eu preciso extrair. Qualquer ajuda seria ótima.

    
por mrlddst 02.04.2018 / 20:17

1 resposta

0

Algo como isto talvez:

^.*\/(.*)_SPINK.*$

Infelizmente, não tenho acesso à Informatica para testá-lo, mas sed concorda:

echo '/test_files/infa_test/nippy/SrcFiles/JUNK/JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv' |
sed -E 's/^.*\/(.*)_SPINK.*$//'

Isso produz JUNK_OPS .

Dependendo de como REG_EXTRACT funciona, pode ser encurtado para

\/([^/]*)_SPINK
    
por 02.04.2018 / 20:43