2

いくつかのFTP機能を備えたサードパーティのETLツールを使用していますが、それらは最小限です(Pentahoと呼ばれます)。

私がする必要があるのは、ftpサイトから最新のファイルzipをダウンロードすることだけです。サイトのコンテンツは次のように表示されます。

...
File:tfo.supplement.20120901.done   9/1/2012    3:48:00 AM
File:tfo.supplement.20120901.zip    421144 KB   9/1/2012    3:48:00 AM
File:tfo.supplement.20120904.done   9/4/2012    3:57:00 AM
File:tfo.supplement.20120904.zip    421794 KB   9/4/2012    3:57:00 AM
File:tfo.supplement.20120905.done   9/5/2012    3:28:00 AM
File:tfo.supplement.20120905.zip    421875 KB   9/5/2012    3:28:00 AM

したがって、この場合は、tfo.supplement.20120905.zipファイルが必要です。

サードパーティツールは、フォルダと正規表現を受け取るget-fileオプションのみを提供します。正規表現に一致するターゲットFTPサイトフォルダ内のすべてのファイルを取得します。

誰かが私に、実際に異なるマッチングオプションを比較して最大のものを出力する正規表現を作成することが可能であると言いました。たとえば、.zipで終わるすべてのtfo.supplement。*ファイルを取得し、中央の日付を整数として扱い、整数が最大のファイルを選択します。

正規表現がそのような機能をサポートできるとは思いもしませんでした。このユースケースで使用できる式を作成するのを誰かが手伝ってもらえますか?

4

1 に答える 1

3

このようなものをお探しですか?>>

s/\s(\d+)\/(\d+)\/(\d{4})\s/{$d = 10000*$3+100*$1+$2 if $d < 10000*$3+100*$1+$2}/eg;

ここでこのコードをテストします。

于 2012-09-21T22:07:43.207 に答える