2017-04-25 56 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