OracleのRDBMSバイナリを更新する必要があります。私はどのファイルが変更されたかを表示するperlスクリプトまたはモジュールを探しています(新規、削除、変更など)。パッチの前後でスクリプトを実行し、その結果を比較する予定です。ディレクトリ内のファイルのバージョン管理のようなPerlスクリプトまたはモジュール?
「perl compare」というフレーズにGoogleが返す結果が多すぎるため、私は答えに感謝します。
敬具、 スコッティ
OracleのRDBMSバイナリを更新する必要があります。私はどのファイルが変更されたかを表示するperlスクリプトまたはモジュールを探しています(新規、削除、変更など)。パッチの前後でスクリプトを実行し、その結果を比較する予定です。ディレクトリ内のファイルのバージョン管理のようなPerlスクリプトまたはモジュール?
「perl compare」というフレーズにGoogleが返す結果が多すぎるため、私は答えに感謝します。
敬具、 スコッティ
たぶん、あなたはgitのを使用し、手間のあなたを惜しまことができます。この種のデータを表示するディレクトリでrepoを開始し、変更をコミットして差分を使用してそれらのデータを比較します。
おそらくこれは当てはまりません。おそらくgitの追加やコミットには長い時間がかかりますが、可能であればgitは無料で多くの情報を提供します。
本当にperlを使いたいのであれば、File :: Findモジュール(walk関数)をチェックし、statを使ってファイルからこの統計を取得することに興味があるかもしれません。
ファイルのリストと各ファイルのチェックサムを作成してから、後でdiff
を実行できますか?例えば
必要なコマンドラインツールを持っている場合、あなたは、コマンドラインで
find [directory] -print0 | sort -z | xargs -0 md5sum
を実行して、パッチの前と後の結果のファイルを比較できます。欠落した行は削除されたファイルに対応し、余分な行は新しいファイルに対応し、変更されたチェックサムは変更されたファイルに対応します。
もしPerlを使いたいなら、File :: FindとDigest :: MD5のようなものを書くことができます。私はちょうどそれが(ディレクトリにZIP/PDF/CHMを追跡し、重複を排除するために)ない私のスクリプトに使用するモジュールをだ
use strict;
use warnings;
use Path::Class;
use Digest::MD5;
use Data::Dumper; # Dumper
use Text::Diff; # diff
。 Path::Class::Dir->traverse
を使用して、Digest::MD5
とstat
を使用して、ファイルサイズとmtimeが同じである(私の目的には十分安全である)ときにチェックサムを再計算しないでファイルの識別情報を追跡し(名前の場合)、Data::Dumper
に最後の結果をロードして保存します。 Text::Diff
を使用して、古いデータと新しいデータのテキストファイルバージョンを比較し、diffをレポートとして出力します。 Gitの(または他のDRCS)と
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 1;
$Data::Dumper::Sortkeys = 1;
良いアイデア:あなたは
Dumper
出力を見たい場合は、読みやすくするために、次のオプションを設定することを検討。しかし残念ながら、HP-UXシステムには非常に小さな組み込みツールがあり、私はrootアカウントを持っていません。 – Scottie