2012-03-03 56 views
1

喜一grep的正則表達式的問題,我覺得grep的查找字符沒有字符之後

我有兩個類似的術語很多情況下,在一個文件,例如:

'stop_codon,5UTR' & 'stop_codon' 

較長期的始終是第一項,逗號,然後再增加一個詞。 我想用grep來查找一個但不是其他的案例。那麼我怎麼才能告訴grep只找到那些沒有緊跟着','的術語。

簡單,我相信,但我有正則表達式的一點經驗,我could'nt找到一種方法,找到一個項目的出現,除非它包含的另一種說法。

由於提前, Rubal

+0

那要看情況。如果沒有後面跟着逗號和第二個字符,那麼在更長的時間之後呢?該行的結束將很容易。 – marsbear 2012-03-03 15:06:17

回答

1

這會工作

'stop_condon[^,]' 

,你用一個否定的字符類

http://www.regular-expressions.info/charclass.html

+0

輝煌,謝謝! – user964689 2012-03-03 15:13:42

+0

只有如果有非逗號後面的話。如果沒有任何事情發生,它不起作用。 – tchrist 2012-03-03 15:42:06

+0

這正是我想要的,我試圖找到任何下列情況,並排除其中一個逗號後面的情況。 – user964689 2012-03-03 15:47:24

1

可以使用-P選項匹配了perl正則表達式模式:

$ grep -P 'stop_codon(?!,)' file.txt 
+0

謝謝你的作品! – user964689 2012-03-03 15:46:49

+0

@ user964689當行只包含**'stop_codon' **時,它可以工作。 – kev 2012-03-03 15:49:27