如何列出仅包含数字名称的文件,例如
1111
2342
763
71
我尝试了ls -l [0-9]*
,但这似乎带来了所有文件名
以数字开头,数字后可以在其名称中包含任何内容。
答案 0 :(得分:4)
答案 1 :(得分:2)
使用GNU find
:
find . -type f -regex './[0-9]*$'
这使用正则表达式而不是文件名通配模式。表达式./[0-9]*$
匹配./
(当前目录),后跟只有数字,直到结束($
)。
如果您需要阻止find
进入子目录,请添加-maxdepth 1
。
如果您想要ls -l
类行为,请在最后添加-ls
。
答案 2 :(得分:1)
使用相反的操作:忽略带有非数字的文件名 [^0-9]
:
ls -1 --ignore=*[^0-9]*
<强> - 忽略= PATTERN 强>
不列出与shell PATTERN匹配的隐含条目
答案 3 :(得分:0)
此命令始终是最安全的选项!
ls | grep -E '^[0-9]+$'
为受众添加一些示例测试用例以明确说明。
$ls
1 12222e 2 B.class Test.java file.sh y.csv
1.txt 1a A.class Test.class db_2017-08-15 file.txt
$ ls | grep -E '^[0-9]+$'
1
2