gon*_*aao 3 shell find quoting regular-expression
我在当前文件夹中有两个文件:
submitWeb.m
submit.m
以下find
不显示这两个文件:
find . -regex .*submit\(Web\)?\.m
Run Code Online (Sandbox Code Playgroud)
但是上面的正则表达式在 emacs 缓冲区中工作正常,即使用isearch-forward-regexp
.
默认regextype
为find
IS emacs
。
但似乎将其find
视为\(
文件名中的左括号,这与 emacs 正则表达式语法不同。
那么这是错误还是我对find
联机帮助页的误解?
似乎问题是\(
由外壳首先解释的。
例如,您在当前目录中有一个名为:
foo(.test
然后
ls foo\(.text
Run Code Online (Sandbox Code Playgroud)
和
ls "foo(.text"
Run Code Online (Sandbox Code Playgroud)
两者都工作。
因此,以下工作:
find . -regex ".*submit\(Web\)?\.m"
Run Code Online (Sandbox Code Playgroud)
编辑:
单引号也适用于此。
单引号和双引号的区别,见这篇文章:bash中的单引号与双引号
归档时间: |
|
查看次数: |
152 次 |
最近记录: |