请帮助,我是unix的新手,
我想读取130000之前可用的文件(hhmiss),意思是文件从00小时到13小时。
XYZ_20170504_{00,01,02,03,04,05,06,07,08,09,10,11,12}[0-5][0-9][0-5][0-9].csv
OR
XYZ_20170504_{13,14,15,16,17,18,19,20,21,22,23}[0-5][0-9][0-5][0-9]
双位数模式匹配对我的情况不起作用。
实施例
File pattern 1: XYZ_DATE_TIME.csv
我想从sftp服务器mget文件,每天两次。
String_yyyymmdd_hhmiss.csv
XYZ_20170514_035959.csv
OR
XYZ_20170514_165959.csv
答案 0 :(得分:0)
首先,在您的问题中,我可以看到您的搜索中有关日期的错误。
你的正则表达式正在寻找这个
XYZ_20170504_
,您的文件包含此
XYZ_20170514_
显然这些永远不会匹配。我认为这更像你需要的东西
000000至125959
XYZ_20170514_(0[0-9]|1[0-2])[0-5][0-9][0-5][0-9].csv
OR
130000至235959
XYZ_20170514_(1[3-9]|2[0-3])[0-5][0-9][0-5][0-9].csv
这也是一个相对快速的解决方案,只寻找与时间相关的匹配。您还应该进一步改进这一点,以便您完全确定在日期上也能正确匹配。
为了您自己的参考,有许多在线工具可以帮助您进行正则表达式和模式匹配。我最喜欢的是regex101,但也有很多其他人可以使用。