我有一个目录,其中包含如下文件列表:
1.html
1.html.v1
1.html.v2
2.html
2.html.v1
a.pdf
a.pdf.v1
b.pdf
b.pdf.v1
b.pdf.v2
在bash中,如何列出所有不以.v [Number]结尾的文件?
提前致谢。
答案 0 :(得分:2)
仅限bash:
shopt -s extglob
ls !(*.v[0-9])
答案 1 :(得分:1)
您可以使用grep -v
过滤掉.v[0-9]*
内容:
ls | grep -v ".v[0-9]*$"
对于你的例子,这给出了
1.html
2.html
a.pdf
b.pdf
答案 2 :(得分:0)
如果你想通过滤除不需要的结果来做到这一点 - @Jonas Heidelberg's Answer (below)是最好的方法但我个人觉得列出你做的所有文件强>想要展示往往更快。
ls *.v[#]
- 其中#
是 做 想要显示的数字将执行此操作:
# All files
[ 09:20 Jonathan@MacBookPro ~ ]$ ls -l *.v*
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 a.v1
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 b.v2
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 c.v3
# Filtered
[ 09:20 Jonathan@MacBookPro ~ ]$ ls -l *.v[23]
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 b.v2
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 c.v3
[ 09:20 Jonathan@MacBookPro ~ ]$ ls -l *.v[13]
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 a.v1
-rw-r--r-- 1 Jonathan staff 0B Nov 1 09:20 c.v3