在文件夹中查找具有x位数的文件

时间:2018-01-17 18:00:04

标签: regex shell grep

您好必须修复一些文件名以便进一步考虑。 让我们假设我只列出文件名开头有7位数的文件。 例如

8795811-005-2535.txt
8-002-2535.txt
8795814-003-2535.txt
8795511-003-2535.txt
8798-005-2535.txt

我希望得到的是

8795811-005-2535.txt
8795814-003-2535.txt
8795511-003-2535.txt

因为它以[0-9]的7次出现开始 我如何用

存档
 ls | grep '[0-9]'

如何将7次出现在正则表达式中?

搜索实用教程或示例的小时数......

3 个答案:

答案 0 :(得分:0)

ls | grep -E "^[0-9]{7}.*"

-E使您可以访问扩展的正则表达式选项

正则表达式细分:

^

找到字符串的开头,

[0-9]{7}

然后匹配7位数,

.*

随后是任何事情。

答案 1 :(得分:0)

Thanx的建议..

8795811-005-2535.txt
ls | grep -E "[0-9]{7}-[0-9]{3}-[0-9]{4}.txt"

确实让我的一天......明确地要了解更多有关regec..pretty cool的信息。

答案 2 :(得分:-1)

for file in [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*; do
    echo "$file"
done

printf '%s\n' [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*

ls [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*

请参阅https://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching