2012-03-03 3 views
1

Привет Grep регулярное выражение вопрос, я думаю, чтоGrep найти характер без символа после

У меня есть много случаев двух аналогичных терминов в файле, например:

'stop_codon,5UTR' & 'stop_codon' 

Чем дольше срок всегда является первым термин, запятой, затем дополнительным термином. Я хочу использовать grep для поиска случаев одного, но не другого. Итак, как я могу сказать grep, чтобы найти только те термины, за которыми сразу не следует символ «,».

Простой, я уверен, но у меня мало опыта с регулярными выражениями, и я не мог найти способ найти появление одного термина, если он не включает другой термин.

Спасибо заранее, Rubal

+0

Это зависит. Что следует за более длительным сроком, если за ним не следует запятая, а вторая? Конец линии был бы легким. – marsbear

ответ

1

Это будет работать

'stop_condon[^,]' 

где вы используете отрицание класса символов

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

+0

блестящий, спасибо! – user964689

+0

Это только слова если есть запятая нижеследующий. Это не работает, если ничего не происходит. – tchrist

+0

Это именно то, что я хочу, я пытаюсь найти случаи без ничего, и исключить случаи, когда следует запятая. – user964689

1

Вы можете использовать -P вариант в соответствии с perl regex рисунок:

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

спасибо, что работает тоже! – user964689

+0

@ user964689 Он работает, когда строки содержат только '' stop_codon' **. – kev

Смежные вопросы