linux - 如何提取具有特定模式的子文件夹名称?

标签 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

非常感谢。 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),在第二个管道中,您剪切 _ 和保留第一个和第二个字段(VIP00021)。

您还可以指定一个字段范围:-f1-3 将保留第一个、第二个和第三个字段。您可以组合:-f1-3,5-10 将保留 1 到 10,但第 4 个除外。

关于linux - 如何提取具有特定模式的子文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504209/

相关文章:

python - Python 3.6+ 中的格式化字符串文字

javascript - 覆盖浏览器 "Find"功能

linux - 打开文件时在 linux 中会发生什么?

在 Linux 上使用 C 检查目录是否为空

.net - 如何在 .NET 中显示缩写路径名

PHP 包含路径问题

ffmpeg - 使用 find -exec 时如何使用原始名称?

c - 在我的程序中使用 findfile

linux - Shell 脚本(使用 top 命令)在 cronjob 中不起作用

IIS8.5 自动更改物理路径属性