我正在尝试使用 grep 来捕获以下数据:
“\\.xy$” “\\.ab$” “\\.ef\\.hi$”
我有
grep -Eo "((\\\\\\.[a-zA-Z]+)){1,2}\\$" 文件
两个问题:
- 它可以捕获 \\.xy$ 之类的东西,但不能捕获 \\.xy\\.ef$
- 返回的结果最后有文字 $,为什么?
我正在尝试使用 grep 来捕获以下数据:
“\\.xy$” “\\.ab$” “\\.ef\\.hi$”
我有
grep -Eo "((\\\\\\.[a-zA-Z]+)){1,2}\\$" 文件
两个问题:
在美元前面加上一个反斜杠:
% grep -Eo '"(\\\\\.[[:alpha:]]+){1,2}\$"' input
"\\.xy$"
"\\.ab$"
"\\.ef\\.hi$"
或者将特殊字符放入方括号中,我觉得这样更易读:
% grep -Eo '"([\]{2}[.][[:alpha:]]+)+"' input
"\\.xy$"
"\\.ab$"
"\\.ef\\.hi$"
你已经双重转义了 $ - 试试这个:
grep -Eo '"((\\\\\.[a-zA-Z]+)){1,2}\$"' file