REGEX는 경로에서 문자열을 찾아 그 일부를 제외합니다.

REGEX는 경로에서 문자열을 찾아 그 일부를 제외합니다.

이것이 쉬운 일이기를 바랍니다. 저는 REG_EXTRACTInformatica를 사용하여 변수에서 파일 이름을 추출하고 있습니다. 정규식을 사용하여 추출할 콘텐츠를 식별합니다. 여기 내 예가 있습니다. powercenter에 진입했을 때의 파일명과 파일 경로입니다.

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

결과 JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csvJUNK/ 뒤, "JUNK_OPS"와 같이 _SPINK 앞의 file_name만 추출하는 정규식 매개변수를 작성하는 데 문제가 있습니다. 밑줄은 파일마다 다르지만 "_SPINK"는 항상 추출해야 하는 항목 뒤에 나타납니다. 어떤 도움이라도 좋을 것입니다.

답변1

어쩌면 다음과 같은 것일 수도 있습니다.

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

안타깝게도 Informatica에 액세스하여 테스트할 수는 없지만 sed다음에 동의합니다.

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

그러면 JUNK_OPS.

REG_EXTRACT작동 방식 에 따라 다음과 같이 단축될 수 있습니다.

\/([^/]*)_SPINK

관련 정보