Вероятно, вам понадобится флаг -w
- от man grep
-w, --word-regexp
Select only those lines containing matches that form whole
words. The test is that the matching substring must either be
at the beginning of the line, or preceded by a non-word
constituent character. Similarly, it must be either at the end
of the line or followed by a non-word constituent character.
Word-constituent characters are letters, digits, and the
underscore.
т.е.
grep -wFf patfile file
denovo1 xxx yyyy oggugu ddddd
denovo22 hhhh yyyy kkkk iiii
Чтобы обеспечить соответствие только в первом столбце, вам нужно будет изменить записи в файле шаблона, чтобы добавить привязку строки : вы также можете использовать \ b
привязка слова вместо параметра командной строки -w
, например в patfile
:
^denovo1\b
^denovo3\b
^denovo22\b
затем
grep -f patfile file
denovo1 xxx yyyy oggugu ddddd
denovo22 hhhh yyyy kkkk iiii
Обратите внимание, что вы должны удалить переключатель -F
, если файл содержит регулярные выражения вместо простых фиксированных строк.