2013-03-18 69 views
11

我對要獲取的命令或修飾符有點困惑: 名稱中包含模式的目錄列表(僅限目錄,不包括子目錄)。僅列出與模式匹配的目錄名稱

在此先感謝。

+2

正則表達式樣式?一個glob風格的模式?這個列表是否應該被格式化以便被其他工具('printf%s \ 0'',讀者期望NUL-delimited輸入)明確地讀取?格式化爲人類消費('ls')?以其他方式格式化? – 2013-03-18 21:28:32

+0

最後的突擊隊刪除目錄日期,大小和燙髮是:ls -l | grep'^ d'| grep'Castellano'| cut -c61- – 2013-03-18 21:30:13

+0

@CharlesDuffy:您的評論或錯誤的用戶錯誤的地方? – 2013-03-19 07:05:50

回答

3

試試這個:

printf '%s\n' *pattern*/ 

如果你喜歡所有在同一行:使用陣列

echo *pattern*/ 

或:

arr=(*pattern*/) 
printf '%s\n' "${arr[@]%/}" 
20

你是-d開關後可能ls

ls -d *pattern*/ 
+0

和模式? – 2013-03-18 20:39:20

+0

@JorgeVegaSánchez:我想這是「a」 – 2013-03-18 20:42:33

+0

@sputnick:是的,更新,謝謝。 – choroba 2013-03-18 20:47:37

-1

這對我很有用。

但它還輸出目錄特徵,權限,日期等,我只想顯示目錄名稱。

ls -t | grep '^d' | grep 'pattern' 
+0

如果您只想使用名稱,與'printf'%s \ n'* /'不相同('* /',不像'*',只擴展到目錄) - 但速度較慢並且可能有問題。 – 2013-03-19 03:40:39