希望这是一件容易的事。我正在使用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/ 之后但 _SPINK 之前的 file_name,如“JUNK_OPS”。下划线因文件而异,但“_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