2つのファイルがあります。1つはホワイトリストファイル(ホワイトリストに登録されたコールスタック)で、もう1つはテスト中のコールスタックファイルです。内容例:
Call stack: [thread] | object 1.0 | object 2.0 | object 3.0 | ...... | malloc
Call stack: [thread] | object 1.1 | object 2.1 | object 3.1 | ...... | malloc
Call stack: [thread] | object 1.2 | object 2.2 | object 3.2 | ...... | malloc
Call stack: [thread] | object 1.3 | object 2.3 | object 3.3 | ...... | malloc
これで、次の内容のテストファイルを取得します
Call stack: [thread] | object 1.0 | object 2.0 | * | ...... | malloc
Call stack: [thread] | object 1.1 | * | * | ...... | malloc
Call stack: [thread] | * | object 2.2 | object 3.2 | ...... | malloc
Call stack: [thread] | object 1.3 | object 2.3 | * | ...... | malloc
これらの2つのファイルを相互に比較すると、ファイルが同じであることを示すtrueが返されるようなアルゴリズムが必要です。つまり、テストファイルにはホワイトリストファイルの外部にコールスタックがありません。
正規表現のgrepを使用したwhileループでうまくいくはずだと理解しています。問題は、コールスタック内の特殊文字が原因で問題が発生していることを試したときです。
制約:シェルのみを使用する必要があります。
どんな助けでもいただければ幸いです。