Perlは、タスクに適しています。しかし、すでにPerlを知っていれば、それはあなたにとって非常に簡単な仕事になるでしょう。
File::Find::Ruleを参照すると、ディレクトリツリー内の多数のファイルを見つけて作業する簡単な手段となります。特定の要件に一致するファイルのみを含むルールを設定し、他のルールはすべてバイパスすることができます。ルールに合致するファイルのハンドラを設定することもできます。
ハンドラ内で、必要と思われる名前の変更を行うことができます。
ファイルがすべて1つのディレクトリ内にあり、どのファイルが修飾されるかを決定する基準(またはルール)のリストが必要ない場合は、opendirとreaddirを使用することができます。 f。
あなたが立ち往生している場所を示すコードとコードに関する特定の質問を投稿すれば、実際にはより具体的なヘルプが得られます。尋ねられるように、あなたの質問は、特定の答えを得るには広すぎます。
アップデート:私はファイルを見ていくつかの仕事をしました::最後の夜を見つけてください。それは文字通り何千ものディレクトリにある私のWindowsコンピュータ上の約10万のファイルを横断し、約2分かかった。 sub wanted
は単純なファイルとディレクトリのカウントを行ったので、File :: Findの効率だけをテストすることができました。最初のコールバックで、スクリプト出力に "Started"を出力するようにしました。私がこれをしたのは、歴史的に、File :: Findが大きなファイルシステムを持つWindows上で実際にコールバックループを開始するのに時間がかかることがわかったからです。
私はLinuxコンピュータ上で同様のサイズのファイル構造で同じスクリプトを実行しました。
私はStrawberry Perl 5.12.2と$ File :: Find :: VERSION 1.15の下で、私が前にコメントで話したバグが解消されたように見えました。必要なコールバックはほぼ即座に開始されましたが、私が5.8.xでそれを使用していたときにコールバックが起動するまでには長い時間がかかります。もちろんこれは窓の上にあります。 Linuxでは、問題は一度もありませんでした。
しかし、比較すると、私のWindowsシステム上の同様の複雑なディレクトリツリー上で動作するFile :: Findテストスクリプトは、Linuxシステム上の100,000個のファイルを「最初に実行」するのに約10倍の時間がかかりました。その後の違いは、Linuxがおそらくファイルシステムのキャッシングを行っていたためです。
File :: Find、またはFile :: Find :: Ruleを使用すると、最新のPerl(5.12.2または5.14.1)が実行されていることを確認することをお勧めします最新のPerlに付属のFile :: Findバージョン。
私は少しPerlに精通しています、ちょうどブラッシュアップする必要があります! ファイルが別のディレクトリにあるので、そこにすべての基準を入れる必要があると思います。私はすぐにいくつかのコードを掲載します。ありがとう! – uppaljaskaran
だから、ブラッシュアップして始めましょう。これは「私はこのプロジェクトを開始する予定です」ではありません。私はこのプロジェクトに取り組んでおり、具体的な質問をする必要があります。サイト。 – DavidO
ちょっとデイヴィッド、私はそれをperlでやったし、私たちのImageサーバが非常に大きいので、サブディレクトリを横断している間にクラッシュしていたからです。私はjavaと同じディレクトリ内のディレクトリを知っている。 あなたのコメントと指導のおかげで! – uppaljaskaran