I am trying to use ER (Extended Regular Expressions) with ls
like ls .+\..+
.
I am trying to print all files which contains an extension
(I know I could have used ls *.*
, but I wanted to try using ER).
When I run that code I get this error: ls: .+..+: No such file or directory
.
You are confusing regular expression with shell globbing. If you want to use regular expression to match file names you could do:
You don't say what shell you are using, but they generally don't support regular expressions that way, although there are common *nix CLI tools (
grep
,sed
, etc) that do.What shells like bash do support is globbing, which uses some similiar characters (eg, *) but is not the same thing.
Newer versions of bash do have a regular expression operator,
=~
: