![REGEX는 경로에서 문자열을 찾아 그 일부를 제외합니다.](https://linux55.com/image/130780/REGEX%EB%8A%94%20%EA%B2%BD%EB%A1%9C%EC%97%90%EC%84%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EC%B0%BE%EC%95%84%20%EA%B7%B8%20%EC%9D%BC%EB%B6%80%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
이것이 쉬운 일이기를 바랍니다. 저는 REG_EXTRACT
Informatica를 사용하여 변수에서 파일 이름을 추출하고 있습니다. 정규식을 사용하여 추출할 콘텐츠를 식별합니다. 여기 내 예가 있습니다. 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.csv
JUNK/ 뒤, "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