tro*_*ura 4 find regular-expression
如何查找名称中包含 ~ * 和其他特殊字符的文件?
例如
find . -name "*\*"
Run Code Online (Sandbox Code Playgroud)
应该匹配“任何字符”然后*,但它不匹配任何内容;如何获得正确匹配文件的命令?
不同的实现find,但它们都应该处理通配符中的字符类(POSIX.2,第 3.13 节):
find . -name '*[~*]*'
Run Code Online (Sandbox Code Playgroud)
如果换行符是您的“特殊”字符之一,您可能需要弄清楚如何让您的 shell 传递它来查找。在 Bash 中,您可以使用
find . -name $'*[\t \n]*'
Run Code Online (Sandbox Code Playgroud)
例如,显示包含空格的文件。如果支持的话,更简单的方法是使用字符类:
find . -name '*[[:space:]]*'
Run Code Online (Sandbox Code Playgroud)