基本上我要做的是列出当前目录中具有特定扩展名的内容(在我的情况下是.c文件)。
所以我认为可行的是:
ls | grep .\*\.c
它主要起作用,但也返回以c结尾的文件,如
我的正则表达式有问题,因为我看不到它。
非常感谢
答案 0 :(得分:4)
您只需使用ls *.c
列出当前目录中扩展名为.c
的所有文件。
答案 1 :(得分:3)
以下是您可以做的事情:
find -name "*.c"
它将从当前工作目录中递归地找到所有具有.c
扩展名的文件。
或者,如果您想要非递归并希望使用ls
,则可以执行以下操作:
ls *.c
如果您想知道如何将grep
的正则表达式应用于ls
搜索结果(即使这更麻烦):
ls | grep ".*\.c$"
Regexplanation:
.
- 匹配任何字符.*
- 匹配任何字符零次或多次.*\.
- 匹配任何字符零次或多次,然后按字面匹配.
(通过“{转发”与\
指定)".*\.c
- 匹配任何字符零次或多次,然后按字面匹配.
,然后匹配字符c
.*\.c$
- 匹配任何字符零次或多次,然后按字面匹配.
,然后匹配字符c
;并且只有当这是模式的结束时(之后没有更多的东西)。 $
是“结束”的正则表达式锚点。答案 2 :(得分:2)
你非常接近
ls | grep \\.c$
查看双反斜杠
答案 3 :(得分:1)
你需要逃避反斜杠:
ls | grep .*\\.c