2010-10-29 125 views
1

我期待以搜索目錄,可...正則表達式查找日期DIR

a2010-02-10

如何搜索LS的所有目錄與日期格式

ls -d *(\d+)-(\d+)-(\d+) 

它不工作如Perl

什麼是正確的格式

回答

3

你的正則表達式似乎是正確的,但慶典d不支持完整的正則表達式。它支持wildcards,它不總是以相同的方式工作。試試這個:

ls -d | grep -E '(\d+)-(\d+)-(\d+)$' 

真的,在(\d+)組可以只用\d+所取代。

如果你喜歡一個純bash的解決方案,試試這個:

ls -d *[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] 

如果需要,您可以簡化不那麼準確:

ls -d *[0-9]*-[0-9]*-[0-9]* 

但我會去使用grep因爲你想要什麼更清晰。你可以把它更加清晰:

ls -d | grep -E '\d{4}-\d{2}-\d{2}$' 
0

隨着shopt -s extglob,你可以這樣做:

ls -d *+([0-9])-+([0-9])-+([0-9])