的文件名顯示部我有作爲在其內部具有許多目錄及其名稱的圖案的目錄: YYYYDDMM_HHMISS 實施例:20140102_120202 欲僅提取YYYYDDMM一部分。 我試過ls -l|awk '{print $9}'|grep -o ^[0-9]*
並得到了答案。 但是我有以下問題:的grep -o和使用LS
爲什麼犯規此返回任何結果:
ls -l|awk '{print $9}'|grep -o [0-9]*
。事實上,它應該已經返回了所有的目錄。 奇怪的只是,包括 '^' 之前[0-9]工作正常:ls -l|awk '{print $9}'|grep -o ^[0-9]*
任何其他(簡單)的方式實現的結果呢?
原因'[0-9] *'什麼也沒有匹配是什麼都沒有足夠的匹配,所以'grep'停在那裏。嘗試'[0-9] [0-9] *'或'grep -E'[0-9] +'',儘管沒有錨也會匹配時間戳。 – tripleee
務必引用正則表達式來防止shell試圖將其視爲模式。如果shell成功,則正則表達式將被替換爲匹配它的文件名列表。 – chepner