2013-01-07 50 views
-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 

我想要的算法中,例如,如果這兩個文件相互比較,它返回一個真正的指出文件是相同的。即測試文件在白名單文件之外沒有呼叫堆棧。

我明白,一個while循環與正則表達式應該做的招數一個grep的,問題是當我嘗試,我由於在調用堆棧的特殊字符可能面臨的問題。

約束:只需要使用外殼。

任何幫助,將不勝感激。

+0

你有什麼理由限制只能使用shell? – Simulant

+0

您可以使用AWK? – arutaku

回答

1

如果不涉及正則表達式,你可以嘗試-F選項grep

grep -xvFf whitelist testfile