- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下文件夹结构(作为一个最小的例子):
dir
├── a
│ ├── b
│ │ ├── c.txt
│ │ └── d.txt
│ └── c
│ └── q.txt
├── b
│ ├── bb.txt
│ └── d
│ └── dd.txt
└── q.txt
.txt
文件,但排除
dir/b
中的所有内容从搜索使用
File::Find::Rule
(我知道我可以使用
File::Find
轻松做到这一点,但这需要对我的代码进行大量重构)。
use feature qw(say);
use strict;
use warnings;
use File::Find::Rule;
my $dir = 'dir';
my @files = File::Find::Rule->or(
File::Find::Rule->directory->mindepth(1)->maxdepth(1)
->name( 'b' )->prune->discard,
File::Find::Rule->name('*.txt'),
)->in( $dir );
say for @files;
dir/q.txt
dir/a/c/q.txt
dir/q.txt
dir/a/b/d.txt
dir/a/b/c.txt
dir/a/c/q.txt
maxdepth()
和
mindepth()
不在
or()
内工作功能。
最佳答案
就像 find
命令行工具,maxdepth
不限制可以发生匹配的位置;它限制了实际的遍历。
maxdepth( $level )
Descend at most
$level
(a non-negative integer) levels of directories below the starting point.
find
命令行工具,
mindepth
防止在一定深度之前执行所有测试。
mindepth( $level )
Do not apply any tests at levels less than
$level
(a non-negative integer).
mindepth
也就不足为奇了。和
maxdepth
来自外部规则对象的是使用的对象,而其他对象则被忽略。[1]
find
的相同解决方案这里可以使用命令行工具。
find
:
$ find dir -wholename dir/b -prune -o -name '*.txt' -print
dir/a/b/c.txt
dir/a/b/d.txt
dir/a/c/q.txt
dir/q.txt
$ perl -MFile::Find::Rule -e'
my ($dir) = @ARGV;
CORE::say for
File::Find::Rule
->or(
File::Find::Rule->exec(sub { $_[2] eq "$dir/b" })->prune->discard,
File::Find::Rule->name("*.txt"),
)
->in($dir);
' dir
dir/q.txt
dir/a/b/c.txt
dir/a/b/d.txt
dir/a/c/q.txt
find ... -print0 | xargs -0 -I{} find {} ...
。)
find
命令行实用程序以不同的方式处理错位的输入。$ find dir -type d -mindepth 1 -maxdepth 1 -name b -prune -o -name '*.txt' -print
find: warning: you have specified the -mindepth option after a non-option argument (, but options are not positional (-mindepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
dir/q.txt
关于perl - 如何在 File::Find::Rule 的 `or` 替代项中使用 mindepth 和 maxdepth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52672370/
我想要一个针对 linux 中的 maxdepth 选项的标准 python 解决方案。我可以用 os.walk() 模拟 find 命令,但我想限制代码级别的深度。我不想在我的代码中使用 subpr
在我的项目中,我有一个来自 Client -> Projects 的一对多关系.因此,在我的一个观点中,我试图展示属于该客户的所有项目。所以我有一个 IEnumerable代表所有客户项目。 问题是
我们将 ASP.NET WebAPI 与 Entity Framework (延迟加载)一起使用,并在将数据返回给客户端之前使用 Json.NET 将数据序列化为 JSON。 我们正在经历内存使用量的
我正在尝试使用 ArangoDB 构建一个大型社交网络图。我在那里有数据 - 大约 35k 个顶点和大约 150k 个边。 我意识到这是一个非常多的数据,所以我希望一次只绘制一个子集 - 可能与起点相
我有一个带有 HTTP 绑定(bind)的 WCF 服务。 AppConif 文件 maxDepth="32"。这适用于除 ONE 以外的所有机器。 我的问题是当 maxDepth="32"时为什么这
我正在使用 JMS Serializer 包将 Symfony 实体序列化为 json。一切工作正常,直到我开始使用 MaxDepth 注释来避免深度递归。 我有一个名为“类别”的实体,其中有“子类别
我想打印子目录中的文件,该子目录位于根目录的 2 级内部。在 shell 中,我可以使用下面的查找命令 find -mindepth 3 -type f ./one/sub1/sub2/a.txt .
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我有点困惑。我无法找出 PreserveReferences 和 MaxDepth 之间的区别。 假设我们有以下 DTO 和模型。 public class PersonEntity { pu
我有一些基于 Sphinx 的文档,用于我构建的库,我想显示除更改日志之外的所有页面的扩展目录。我通过将更改日志移到第二个 :toctree:: 来弄清楚如何做到这一点,但这有一些奇怪的行为。主要是,
MS CRM 2011 具体而言。这实际上是一个 4 个问题: 一个。为什么选择 8 作为默认限制? (它是任意的,原始深度计数器是 3 位整数(尽管执行上下文的深度是有符号的 32 位),开发人员只
MS CRM 2011 具体而言。这实际上是一个 4 个问题: 一个。为什么选择 8 作为默认限制? (它是任意的,原始深度计数器是 3 位整数(尽管执行上下文的深度是有符号的 32 位),开发人员只
希望有人能帮助解决这个问题: 我正在尝试使用此命令删除/tmp 上的 session 文件: find /tmp -name 'sess_*' -user Username -maxdepth 1 $
我只需要通过 JsonConvert.SerializeObject 序列化对象的第一层。我试过 MaxDepth = 1,但此属性仅用于反序列化。 期望的行为(属性栏缺失或为空): class Fo
我最近更新到最新的 spring mongodb 1.10 以尝试新的 $graphLookup 聚合器。但是,我似乎无法指定 graphLookup 的所有参数。 具体来说,我可以成功设置 star
我现在使用下面的 bash 脚本在每个 2 级深度目录中创建文件列表,并在每个特定文件夹中输出为文本文件。 但是,我只能将其命名为“File.txt”如何使用二级深度目录作为输出文本文件名 例如在列出
我在使用 向服务器发送消息时收到以下错误SignalR 2.0.0 : SignalR: The reader's MaxDepth of 20 has been exceeded. 我使用 Unit
我正在尝试使用 firebase teSTLab 为我的 android 应用程序自动执行“UI 测试”。我已经在 android studio 中保存了一个脚本,但想限制机器人进行任何进一步的猴子测
我有动态 CRM 8.2 本地实例,我想将 WorkflowSettings.MaxDepth 属性从最大深度 8 增加到 120。有人可以帮我确定一下,如果我将其增加到 120,会对我机器的 RAM
我有以下文件夹结构(作为一个最小的例子): dir ├── a │ ├── b │ │ ├── c.txt │ │ └── d.txt │ └── c │ └──
我是一名优秀的程序员,十分优秀!