我在 SFTP 上有文件,名称格式为:
我只想从 SFTP 获取那些具有
Bede7d_TodaysDate
的文件。所以Bede7d_20230823
。
我在“使用 SFTP 获取文件”中的“文件”选项卡下的通配符选项中使用了此公式,正则表达式为 .*Bede7d_\d{8}.*
我尝试输入正则表达式 -
.*Bede7d_\d{8}.*
并且期望只得到
145388__transaction-search_Bede7d_20230823080418000000_101e736810b34134.csv
但是我得到了所有以
Bede7d_.
开头的文件
它不起作用。请问有什么建议吗?
根据您尝试读取的文件名,正则表达式
.*Bede7d_\d{8}.*
将匹配这两个文件。因为 \d{8}
将匹配 .*Bede7d_
之后的所有 8 位数字。有关此问题中正则表达式的更多信息:https://stackoverflow.com/a/2149692/1131789
要回答您的问题,如果您只想过滤与当前日期匹配的文件,您可以尝试以下选项:
.*Bede7d_20230823.*
,其中 20230823 是当前日期。您还可以将日期设置为 PDI 中的变量。.*Bede7d_\d{8}
并使用 Pentaho DI 中的“过滤步骤”根据当前日期过滤必要的文件。