ls -ld

时间:2017-08-14 00:33:38

标签: regex shell ls

我有一个目录由不同类型的文件组成,包括具有相似名称的目录和单个文件 - 因此模式必须非常精确。

我需要使用 ls -ld 来提取目录,并查找特定的图案目录。在得到这个之后,我需要找出特定的 string_w_pattern 作为变量存储的内容。

我在sh中运行它。

已知字符串为 my_dir my_prop_dir

/my_dir/string_w_pattern/my_prop_dir

string_w_pattern 由大写字母的2-3个字符组成,其中一个数字始终位于第二位。

由于 string_w_pattern 的名称相似,我尝试过关注但获得两个以上的输出。

ls -ld /my_dir/[A-Z]*[A-Z0-9]\/my_prop_dir

1 个答案:

答案 0 :(得分:1)

shell在这里使用glob表达式语法,而不是常规expresssion。 *将像正则表达式.*一样展开。另外,放弃\屏蔽您的/。试试这个:

ls -ld /my_dir/[A-Z][A-Z][0-9]/my_prop_dir /my_dir/[A-Z][A-Z][A-Z][0-9]/my_prop_dir

要从结果中过滤掉所需的字符串,请使用sed或cut。