2017-04-25 59 views
0

我有一个unix代码,它从与预定义格式匹配的目录中读取文件,并将它们移动到不同的目录进行处理。以下是现有的工作模式和示例。在Bash shell中的正则表达式

[A-Za-z]{5}.[A-Za-z]{2}.INPUT.[0-9]*(.TXT|.txt)$ 

旧文件例1: - STATS.WE.INPUT.20140227.TXT

旧文件例1: - STATS.WE.INPUT.20150245654.TXT

新的文件模式已被更改,下面是我尝试过的示例文件名和格式。

新文件实例: - STATS.WE.INPUT.20140227.A2345.465789765.TXT

新文件例2: - STATS.WE.INPUT.20140227.2345.465789765.TXT

新文件示例3: - STATS.WE.INPUT.20140227.2345.46578976534234.TXT

[A-Za-z]{5}.[A-Za-z]{2}.INPUT.[0-9]*.[A-Za-Z0-9]*.[0-9]*(.TXT|.txt)$ 

请让我知道什么必须昌用上述表达式编辑。

+2

为了使这个更健壮,使用'^'开始正则表达式,使用'\ .'来表示文字点,并使用'+'而不是'*'。 – mklement0

回答

1

这里就是答案:为了配合.A2345.465789765例如\.[A-Za-z0-9]+\.[0-9]+

^[A-Za-z]{5}\.[A-Za-z]{2}\.INPUT.[0-9]*\.[A-Za-z0-9]+\.[0-9]+(.TX‌​T|.txt)$ 

单从所有模式我有这个部分。

+0

谢谢@kaldoran – Devoloper250