uniq
是一個工具,使一次在一個文件中以過濾線使得只有獨特線被示出。 uniq
有一些支持來指定兩行是否「等效」,但選項是有限的。高級`uniq`與「唯一的零件的正則表達式」
我正在尋找在uniq
工具/擴展,它允許一個進入一個正則表達式。如果捕獲的組對於兩條線是相同的,則這兩條線被認爲是「等價的」。每個等價類只返回「首次匹配」。
例:
file.dat
:
foo!bar!baz
!baz!quix
!bar!foobar
ID!baz!
使用grep -P '(!\w+!)' -o
,可以提取 「獨特份」:
!bar!
!baz!
!bar!
!baz!
這意味着,第一行被認爲是「相當」與第三,第二與第四。因此只有第一個和第二個被打印(第三個和第四個被忽略)。
然後uniq '(!\w+!)' < file.dat
應該返回:
foo!bar!baz
!baz!quix
你有一個更好的例子嗎?不知道如何在不編寫自定義內容的情況下讓該正則表達式按照自己的意願做你想做的事情,但是如果我們能夠看到你的數據的外觀,那麼肯定會有使用一些標準工具的解決方案。 – arco444 2014-10-29 15:07:35
更新,更好? – 2014-10-29 15:16:51