如何使用特定模式提取子文件夹名称?

时间:2014-03-19 11:20:58

标签: linux path find

我在使用特定模式提取子文件夹名称时遇到问题。例如,

/home/usr/VIP_00011_selected/Mark/Test
/home/usr/VIP_00021_selected/Mark/Test
/home/usr/VIP_02015_selected/Mark/Test
...

我想使用'find'或其他命令来提取不带'_selected'的子文件夹名称,输出如

VIP_00011
VIP_00021
VIP_02015

非常感谢。甲

编辑:

find . -type d -iname "VIP*"

可以部分完成返回的工作

./VIP_02015_selected

但我不想以./回来,我不想_selected

1 个答案:

答案 0 :(得分:1)

您可以使用cut

$> find . -type d -iname "VIP*"
./VIP_00021_selected
./VIP_00025_selected
./VIP_00011_selected

$> find . -type d -iname "VIP*" | cut -d'/' -f2 | cut -d'_' -f1,2
VIP_00021
VIP_00025
VIP_00011

使用-d指定分隔符,-f要打印哪些字段。在第一个管道中,您使用/切割并选择第二个字段(VIP_00021_selected),在第二个管道中,您切入_并保留第一个和第二个字段({{ 1}}和VIP)。

您还可以指定字段范围:00021将保留第1,第2和第3字段。你可以结合使用:-f1-3将保持1到10,除了第4个。