您好必须修复一些文件名以便进一步考虑。 让我们假设我只列出文件名开头有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次出现在正则表达式中?
搜索实用教程或示例的小时数......
答案 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