Обновление ответа
Вы можете использовать операторы start with ^
и end with $
, чтобы сопоставить начало и начало. Чтобы точно соответствовать MSTRG.18691.1 , вы можете добавить ^ & $ на обоих концах и удалить границы слова, кроме того, .
имеет специальное значение для соответствия регулярному выражению ровно .
нам нужно избежать этого с обратной косой чертой \
Пример шаблона:
^MSTRG\.18691\.1$
^MSTRG\.18801\.1$
file1
MSTRG.18691.1
MSTRG.1311.1
MSTRG.18801.2
MSTRG.18801.3
MSTRG.18801.1.2
MSTRG.18801.1.1
MSTRG.18801.1
PrefixMSTRG.18801.1
Просто создайте обычный файл с именем file1 и вставьте в него вышеуказанное содержимое.
file2 (файл шаблона)
^MSTRG\.18801\.1$
Просто создайте обычный файл с именем file2 и вставьте в него вышеуказанное содержимое.
Запустите приведенную ниже команду из командной строки
grep -i --color -f file2 file1
Результат:
MSTRG.18801.1
Sed для добавления изменений в файл шаблона
Вот sed command
для экранирования .
и добавления ^
и $
в начале и конце файла шаблона, который у вас уже есть.
sed -Ee 's/\./\\./g' -e 's/^/\^/g' -e 's/$/\$/g' file2 > file2_updated
-E для поддержки расширенного регулярного выражения в BSD sed, вам может потребоваться заменить -E на -r в зависимости от sed вашей системы
Обновленные шаблоны будут сохранены в file2_updated. Нужно использовать новый файл шаблона в grep, как это
grep -i -f file2_updated file1