首页 > 解决方案 > Autosys 文件观察程序文件正则表达式

问题描述

我在文件观察服务中识别相似文件名时遇到了问题。我的文件如下所示:

1. filename1.YYYYMMDD.txt.YYYYMMDDSSSSSS.END regex I am using filename1.*.txt.*.END 
2. filename1.YYYYMMDD_trl.txt.YYYYMMDDSSSSSS.END regex  I am using filename1.*_trl.*.END
3. filename2.YYYYMMDD.txt.YYYYMMDDSSSSSS.END regex  I am using filename2.*.txt.*.END
4. filename2.YYYYMMDD_trl.txt.YYYYMMDDSSSSSS.END regex  I am using filename2.*_trl.*.END

所以你看到这里的问题,1 与 2 混淆,3 与 4 混淆。我应该怎么做,让它更具体?

标签: shellunixautosys

解决方案


由于您正在寻找正则表达式,因此我将通过grep. 但是,ls命令不支持正则表达式。

示例文件:

$ cat filenames                                                                                                           
filename1.20210225.txt.20210225123456.END                                                                                                 
filename1.20200225_trl.txt.20210225123456.END

代码:

$ egrep "filename1.([0-9]{8}).txt.([0-9]{14}).END" filenames                                                              
filename1.20210225.txt.20210225123456.END                                                                                                 
$ egrep "filename1.([0-9]{8})_trl.txt.([0-9]{14}).END" filenames                                                          
filename1.20200225_trl.txt.20210225123456.END

解释:

egrep "filename1.([0-9]{8}).txt.([0-9]{14}).END" filenames

[0-9]- 来自 0123456789 的任何数字

{8}- 准确的字符数。YYYYMMDD 是 8 个字符,类似 YYYYMMDDSSSSSS - 14


推荐阅读