我想检查文件中是否存在以下字符序列$$$$$
(即 5 个美元符号),因为它已被使用而不是逗号来分隔字段,并且我需要确保这不会导致与现有的类似序列发生冲突。json
grep
但是,当我 grep 时$
,我得到了相似的行数。似乎$
是行尾的特殊字符?
如何$$$$$
使用 grep 进行搜索?是$
特殊字符吗?
答案1
似乎
$
是行尾的特殊字符?
是的,完全正确。每行都有一个行尾。
您需要使用\$\$\$\$\$
as 模式,或者使用grep -F '$$$$$'
, 来告诉grep
将模式用作固定字符串而不是正则表达式。
或者更短版本的正则表达式模式:\$\{5\}
在基本正则表达式或\${5}
扩展正则表达式中 ( grep -E
)。
(在基本正则表达式(plain grep
)中,您实际上只需要转义最后一个美元符号,因此$$$$\$
可以代替\$\$\$\$\$
。但在扩展 ( grep -E
) 和 Perl 正则表达式中,它们都需要转义,所以无论如何最好这样做。)