是否可以列出与 ls 模式匹配的文件?

Yas*_*ine 6 bash shell ls file sh

我想列出与ls模式匹配的目录文件,而不使用grep. 是否可以?

重点是检索与此模式匹配的所有文件'^\Extra_text_[0-9]\{10\}.csv' 并计算我得到了多少。

我尝试了这段代码:

ls | grep '^\Extra_text_[0-9]\{10\}.csv'

InputName=' | grep ^\Extra_text_[0-9]\{10\}.csv'

fileCount=`ls $INPUT_FILE/$InputName 2>/dev/null | wc -l`

echo "$fileCount

但这不起作用!:/

Mic*_*ros 4

不只与lsls根本不了解模式。它只能与shell 提供的通配符(通配符*?/或扩展通配符 - 请参阅Bash 手册页)一起使用,但不能与正则表达式一起使用。extglob

一个简单的方法是用于find此作业(请注意,正则表达式需要匹配整个文件名):

find . -regex '<yourpattern>'
Run Code Online (Sandbox Code Playgroud)

要计算结果,请通过管道传输到wc

# safe for corner case: version of find w/o newline escaping and files with newlines:
find . -regex '<yourpattern>' -printf '.' | wc -c    

# fallback for non-GNU platform, corner cases not addressed:
find . -regex '<yourpattern>' | wc -l 
Run Code Online (Sandbox Code Playgroud)

-regex在手册页中查找find更多信息。