微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何:Apache骆驼,正则expression式匹配文件

我试着让骆驼做一些文件操作,并通过activeMQ经纪人传递给他们,我把这个项目从一个刚刚离职的人那里拿走了。

到目前为止,

<route id="SVLFTPcopY"> <from uri="sftp://*****:*******@********/srv/test/?fileName=*2280.xls&amp;noop=true&amp;idempotent=false"/> <to uri="file:/srv/data/test/destination/"/> <to uri="activemq:queue:svl.ftp.copy"/> </route>

它工作到运行路线而没有任何错误,但仍然不会将文件复制到本地文件

有任何想法吗? 。

Nginx在匹配之前是否会引用/ unescape URL字符?

如何在文件中search正则expression式,然后修改所有的事件?

正则expression式在KornShell中

用SED或AWK替代date(或任何工作) – Linux的正则expression式

在Linux上的R中的string中删除(不分割)空格字符

正则expression式replace

删除除()之外的所有内容

在PowerShell中用加号重命名文件

从re.sub调用函数

正则expression式模式不支持#符号

是的,如果你想过滤出基于模式的文件,你需要使用包含/排除/过滤器选项。 fileName选项是针对单个文件的。

所以在你的情况下,删除fileName选项并将其替换为include=.*2280.xsl 。 请注意,include是基于Java正则表达式的,所以我们使用dot star来表示通配符。 更多细节在这里: http : //camel.apache.org/file2 。 ftp组件继承了文件组件99%的选项,所以这就是我引用文件wiki页面的原因。

使用使用Java正则表达式的include选项:

include=.*2280\.xsl

请介意点之前的\ .

或者,使用antInclude :

antInclude=*2280.xsl

对于那种过滤,我推荐使用GenericFileFilter

名称匹配的实现中,使用以下代码

if (ObjectHelper.isNotEmpty(endpoint.getInclude())) { if (!name.matches(endpoint.getInclude())) { return false; } }

所以你可以测试你应该使用哪个正则表达式。 在你的情况下,我想.*2280\.xsl是你应该使用的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐