我有这样的结构
201
202
203
204
205
206
2011-08-04_03-01-15
2011-08-05_03-01-15
2011-08-08_03-01-15
2011-08-09_03-00-02
2011-08-10_14-16-37
我只需要grep文件夹,日期名称如“2011-08-05_03-01-15” 我试过ls | grep'201'但在输出中有201个文件夹到
用ls |的方式grep'2011'是不可接受的,因为它是硬编码。答案 0 :(得分:1)
你可以在没有grep的情况下做到这一点:
ls -d ????-??-??_??-??-??
这可以正常工作,假设您没有其他文件夹名称遵循相同的模式而没有日期,例如aaaa-bb-cc_dd-ee-ff
,因为上述命令也会列出这些名称。
您甚至可以减少限制,并列出第5个位置-
的所有内容:
ls -d ????-*
答案 1 :(得分:1)
使用grep
:
ls -d */ | grep -E '[0-9]{4}(-[0-9]{2}){2}_([0-9]{2}-){2}[0-9]{2}'
使用find
:
find * -regextype posix-extended \
-regex '[0-9]{4}(-[0-9]{2}){2}_([0-9]{2}-){2}[0-9]{2}' \
-type d
答案 2 :(得分:1)
ls | egrep '^[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2}$'
答案 3 :(得分:1)
尝试使用regExp:
ls | grep -E“....- - _ * - - ”
答案 4 :(得分:0)
您拥有手册页中的所有信息。 看看find