要使用獨特的前綴詞「獨一無二的:」在文件中,我試圖用一個Perl的正則表達式的命令,如:正則表達式匹配的唯一字的文件中
perl -e 'undef $/;while($_=<>){s/^(((?!\b\3\b).)*)\b(\w+)\b(((?!\b\3\b).)*)$/\1UNIQUE:\3\4/gs;print $_;}' demo
在含有演示文件:
watermelon banana
apple pear pineapple orange mango
strawberry cherry
kiwi pineapple lemon cranberry watermelon
orange plum cherry
kiwi banana plum
mango cranberry apple
lemon
的輸出是:
watermelon banana
apple pear pineapple orange mango
strawberry cherry
kiwi pineapple lemon cranberry watermelon
orange plum cherry
kiwi banana plum
mango cranberry apple
UNIQUE:lemon
不幸的是,\ 3反向引用似乎並沒有如事先用來處理。
是否有另一種方法來實現這與另一個正則表達式或其他常用命令在Linux框? (grep的,用sed,awk中,...)
非常感謝
編輯: 不幸的是,許多解決方案適用於所提供的情況下,只有這是不完整的,我該道歉,也應該像文字工作:
{watermelon || banana}
apple = (pear pineapple orange mango)
strawberry cherry
kiwi = pineapple = lemon = cranberry = watermelon
orange - plum = cherry
kiwi = banana + plum
mango = cranberry && apple
lemon
如果它簡化了問題,也就是說可以用類似$或前綴@。
請注意,此演示文件中只有「梨」和「草莓」是唯一的。 「undef $ /」用於整個讀取文件而不是逐行讀取。 (((!!foo)。)*)通常用於匹配任何不包含「foo」的東西。 – 2009-11-03 08:20:57