LINUX.ORG.RU

Как использовать переменные в регулярных выражениях???


0

0

Как использовать переменные в регулярных выражениях???
Например в grep

var=a

cat filename | grep '^$var$'

Те я хочу найти строки с одной лишь буквой а в них но возникает ошибка. 

Может $var в какие-то кавычки заключить?
anonymous

К регулярным выражениям переменные среды отношения не имеют, поэтому в общем-то использовать их нельзя. Что можно сделать -- это сконструировать регулярное выражение, используя переменные. Для этого можно, например, использовать двойные кавычки вместо одинарных, т.е. grep "^$var\$" При этом надо 1) экранировать символы вроде $ которые имеют специальное значение для шелла 2) помнить, что сначала происходит подстановка переменных, а потом разбор регулярного выражения, поэтому если например var='a*', то искаться будет не строка "a*", а любое количество символов "a" итп

aa5779
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.