我在提取具有特定模式的子文件夹名称时遇到问题。例如,
/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
非常感谢。 A.
编辑:
find . -type d -iname "VIP*"
可以做部分返回的工作
./VIP_02015_selected
但我不想返回 ./并且我不想 _selected
最佳答案
你可以使用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
),在第二个管道中,您剪切 _
和保留第一个和第二个字段(VIP
和 00021
)。
您还可以指定一个字段范围:-f1-3
将保留第一个、第二个和第三个字段。您可以组合:-f1-3,5-10
将保留 1 到 10,但第 4 个除外。
关于linux - 如何提取具有特定模式的子文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504209/