我有两个文件,一个是白名单文件(其中包含列入白名单的调用堆栈),另一个是正在测试的调用堆栈文件。示例内容:
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
我想要一个算法,如果这两个文件相互比较,它会返回一个 true 说明文件是相同的。即测试文件在白名单文件之外没有调用堆栈。
我知道在正则表达式上带有 grep 的 while 循环应该可以解决问题,问题是当我尝试遇到问题时,可能是由于调用堆栈中的特殊字符。
约束:只需要使用外壳。
任何帮助,将不胜感激。