在grep中使用双引号来匹配行尾

JY2*_*Y2k 1 regex sed rc-shell

我使用grep来匹配Cshell中的文件名.我想匹配所有符合$ name的文件.没有任何其他文件匹配,如$ name ..

当使用美元符号强制匹配出现在行尾时,它很有效.唯一的问题是,当我想使用变量$ name时,我必须使用双引号""而不是''然后$不起作用.

> ls back_dir | grep 'aa\.[0-9]$'
aa.1
aa.2

>ls back_dir | grep "aa\.[0-9]$"
Illegal variable name.
Run Code Online (Sandbox Code Playgroud)

krl*_*mlr 5

你也可以混合"':

ls back_dir | grep "aa.[0-9]"'$'
Run Code Online (Sandbox Code Playgroud)

(注意:在bash和C-shell中工作.)