Как grep для символа доллара ($)?
% cat temp
$$$ hello1
$$ hello2
hello3
## hello4
hello5 $$$
% cat temp | grep "$$$"
Illegal variable name.
% cat temp | grep "$$$"
Variable name must contain alphanumeric characters.
%
Я хочу grep для $$$
и я ожидаю, что результат должен быть
% cat temp | grep <what should go here?>
$$$ hello1
hello5 $$$
%
чтобы отличить, я отметил приглашение как %
.
- в чем тут проблема?
- что нужно строка grep быть?
5 ответов:
проблема в том, что оболочка расширяет имена переменных внутри строк в двойных кавычках. Так что за
"$$$"
Он пытается прочитать имя переменной, начиная с первого$
.в одинарных кавычках, с другой стороны, переменные не расширяются. Таким образом,
'$$$'
б работа – если бы не тот факт, что$
- специальный символ в регулярных выражениях, обозначающий окончание строки. Поэтому он должен быть экранирован:'$$$'
.