-2

我有两个文件,一个是白名单文件(其中包含列入白名单的调用堆栈),另一个是正在测试的调用堆栈文件。示例内容:

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 循环应该可以解决问题,问题是当我尝试遇到问题时,可能是由于调用堆栈中的特殊字符。

约束:只需要使用外壳。

任何帮助,将不胜感激。

4

1 回答 1

1

如果不涉及正则表达式,您可以尝试以下-F选项grep

grep -xvFf whitelist testfile
于 2013-01-07T10:42:51.283 回答