问题标签 [extglob]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何将正则表达式转换为 extglob 表达式?
我想将正则表达式转换为 glob
我在看jakarta oro但我找不到适合我需要的方法。它编译正则表达式并返回其 glob 等价物
它们都是Type-3语法,所以理论上应该是可能的。
不幸的是,我受到使用 JDK5 的限制。
unix - 用于移动特定目录中的所有文件和目录的 UNIX 命令,除了一个单独的文件
我想将除特定文件之外的所有文件从单个目录移动到 mac 上的垃圾箱。
我不想移动该目录中的文件和文件夹,而是希望将所有文件和文件夹单独移动到垃圾箱。对于这个目录:
~/Desktop/script.sh
~/Desktop/File1
~/Desktop/Folder/File2
我希望 script.sh 留在桌面上,但垃圾目录中包含三个元素,如下所示:
~/.Trash/File1
~/.Trash/Folder
~/.Trash/File2
我发现extglob
并且为了我的任务的目的,我将在我的脚本中启用和禁用它。我正在使用find
,因为我想移动目录中的所有目录和文件和文件,当放入垃圾箱时,我希望所有文件和目录都是独立的。正如我希望目录中的文件位于该目录之外。
这是我创建的代码,我没有收到任何错误。
我的问题是find
我用于此任务的正确命令,如果是这样,我哪里出错了,因为我能够成功完成我的任务,而不是单独排序文件,而不是在垃圾箱中的父目录中。
bash - 双星号通配符是否意味着除了 `globstar` 之外的任何东西?
我有一个 Antbuild.xml
脚本,其中包含以下代码段:
根据这个问题的答案和Bash 文档,双星号表示globstar
模式匹配:
globstar
如果设置,文件名扩展上下文中使用的模式 '**' 将匹配所有文件以及零个或多个目录和子目录。如果模式后跟“/”,则只有目录和子目录匹配。
这似乎是编写代码的人意味着它可以工作的意义:.jar
在项目库目录中找到所有文件,无论有多少目录深。
但是,代码通常在globstar
关闭设置的 Bash shell 中执行。在这种情况下,似乎应该将双星号解释为单个星号,这会破坏构建。尽管如此,构建执行得非常好。
是否有任何场景之外globstar
的 Bash shell 会以**
任何不同的方式解释*
?例如,extglob
仅设置是否可以区分两者?这方面的文档似乎很少。
bash - 删除所有内容,除了两个文件
我想删除文件夹中的所有内容,包括文件夹,但两个文件除外。为此,为什么要使用这个脚本:
哪个有效,但是当我尝试在一个案例中执行时:
这将发生:
我想知道为什么会这样,更重要的是,如何解决:)
bash - Makefile:如何获取通配符 (!arch)/*.c
我正在尝试制作一个用于编译项目中所有源文件的生成文件,这些文件分布在如下几个目录中:
我想从 arch 和包含目录中排除所有文件,我可以在 shell 中使用命令 ls !(arch)/*.c 执行此操作但是当我尝试使用
$(通配符!(arch)/*.c)
它不起作用。我怎样才能让它在我的makefile中工作?我可以使用 !(arch || include) 之类的东西来排除两个目录吗?
bash - 负匹配如何在 extglob 中进行参数扩展
问题
的行为
在参数扩展中使用时,它不像我期望的那样工作,特别是
输入
测试用例
眼镜
笔记
这些是非常基本的示例,因此如果可以在答案中包含更复杂的示例和解释,那么请这样做。
如果需要更多信息或示例,请在评论中告诉我。
已经看过extglob 如何与 shell 参数扩展一起工作?,甚至评论了该特定问题的问题所在,因此请不要将其标记为骗子。
bash - bash extglob 范围或值匹配相同的文件名两次
鉴于这些文件:
我期望这种 globbing 模式(启用 extglob 的 bash):
输出:
但相反,我fileFoo
列出了两次:
“或”的两边都不会产生意想不到的结果:
那么为什么fileFoo
在我“或”表达式时打印两次,以及匹配范围(例如上面的 1-2 但可能是 17-593 或任何其他范围)或其他一些不相关的字符串(例如上面的 Foo )?
ruby - Ruby 中的 Extglob 语法样式匹配
我想创建一个 glob 表达式来识别其中没有任何句号(句点)的文件名,并在 Ruby 代码中使用该表达式。我意识到普通的 glob 表达式不能做到这一点。但是,bash extglob 有一种可以处理这种情况的语法。是否可以在 Ruby 中使用 bash extglob 样式模式,使用核心 Ruby 库或第三方 gem?
我尝试使用File::FNM_EXTGLOB
,但这没有用。下面是一个简化的场景,用来测试是否File::FNM_EXTGLOB
有和 bash extglob 完全相同的语法,但似乎不是这样:
此外,英语和日语文档File.fnmatch
只谈论File::FNM_EXTGLOB
允许您使用两种可能性的联合,例如File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB)
.
使用 glob 表达式的替代方法是使用正则表达式,或者可能使用操作系统自己进行 globbing,但如果可能的话,我宁愿不走这些路径。
bash - Extglob - 不按模式移动所有文件,但保留特定文件
假设我有一个名为/folder1/的文件夹,其中包含以下文件:
我想移动到/folder2/
所有不是.log
当前日期的文件,除了file.txt
. 由于今天是2018-01-22
(在我的时区),我只想保留log-2018-01-22.log
和file.txt
in /folder1
。
我正在使用的脚本(见下文)没有像我打算的那样保留file.txt
在./folder1/
.log
/folder2/
我可以在该!($d.log)
部分中进行任何更改以使命令忽略file.txt
吗?