Как 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 ответов:
проблема в том, что оболочка расширяет имена переменных внутри строк в двойных кавычках. Так что за
"$$$"Он пытается прочитать имя переменной, начиная с первого$.в одинарных кавычках, с другой стороны, переменные не расширяются. Таким образом,
'$$$'б работа – если бы не тот факт, что$- специальный символ в регулярных выражениях, обозначающий окончание строки. Поэтому он должен быть экранирован:'$$$'.