ls -ld 的正则表达式

regex for ls -ld

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

我需要使用 ls -ld 来提取目录,并寻找特定的模式目录。得到这个之后,我需要找出那个特定的 string_w_pattern 是作为变量存储的。

我是运行这个在sh。

已知字符串是my_dirmy_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

shell 此处使用 glob 表达式语法,而不是正则表达式。 * 将像正则表达式 .* 一样展开。此外,删除 \ 掩盖你的 /。试试这个:

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。