46
A
回答
38
2
一个解决办法是ls -1|grep -v '\.jar$'
13
随着find
合适的版本,你可以做这样的事情,但它是一个有点矫枉过正:
find . -maxdepth 1 ! -name '*.jar'
find
找到文件。 .
参数指定您要从.
开始搜索,即当前目录。 -maxdepth 1
告诉它你只想搜索一个深度,即当前目录。 ! -name '*.jar'
寻找所有文件不要匹配正则表达式*.jar
。
就像我说的,这个应用程序有点矫枉过正,但是如果你删除了-maxdepth 1
,那么你可以递归搜索所有非jar文件或者你有什么容易的。
27
鲜为人知的bash展开规则:
ls !(*.jar)
58
使用egrep的样式的扩展模式匹配。
ls !(*.jar)
这是开始与bash-2.02-alpha1。 必须首先用
shopt -s extglob
随着庆典-4.1-α的有一个配置选项,默认情况下启用此功能。
14
POSIX定义了不匹配的括号表达式,所以我们可以让shell为我们扩展文件名。
ls *[!j][!a][!r]
尽管这有一些怪癖,但至少它与任何unix shell都兼容。
1
如果您想要排除多个文件扩展名,请使用管道|
分隔它们,如ls test/!(*.jar|*.bar)
。让我们试一下:
$ mkdir test
$ touch test/1.jar test/1.bar test/1.foo
$ ls test/!(*.jar|*.bar)
test/1.foo
看着其他的答案,你可能需要shopt -s extglob
第一。
相关问题
- 1. 不包含模式的列表文件
- 2. 列表样式菜单不符合
- 3. 模式鉴别不符合
- 4. Android文本不符合列表
- 5. 文件列表“模式”使用NSPredicate
- 6. 列出模式不匹配的文件!
- 7. 遍历文件夹 - 处理不适合模式的文件
- 8. 在通用列表集合中搜索字符串模式
- 9. 迭代组合状态列表模式
- 10. Spring Security:antMatchers不符合URL模式
- 11. Bash列表文件不匹配一组模式
- 12. 我不能看到样式库列表模块文件
- 13. 合并/合并文件列表
- 14. 如何编写符合所需模式且不适合其他模式的正则表达式?
- 15. 确定XML文件是否符合特定模式
- 16. 在Vim中打开所有符合特定模式的文件
- 17. 将文本文件看作字符列表,而不是列表字符
- 18. MySQL全文匹配布尔模式不符合我的期望
- 19. 如何显示不符合正则表达式的字符列表?
- 20. 正则表达式为多个文件名字符串模式
- 21. 的Makefile:混合文件/目录模式
- 22. 正则表达式符合下列条件
- 23. ''SQLException列计数在大文件中不符合第1行的值计数,在小文件中不符合
- 24. 列表框样式的选择不符合的DataTemplate
- 25. 列表项不符合填充
- 26. 不符合2列
- 27. 文件模式 - 文件不存在
- 28. 将重复模式的文本文件读入列表中
- 29. Ruby:未终止的正则表达式符合文件末尾
- 30. 问题索引,无端接正则表达式符合文件
这可能不应该被标记为正则表达式,*是一个shell-globbing通配符,并且不是正则表达式*,它是“零个或多个量词”。 – sweaver2112 2011-12-15 19:57:15
好点,虽然我知道使用正则表达式可能是更好的练习来获得你期望的比赛。 – paislee 2011-12-15 20:04:01