2013-03-18 63 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

相关问题