- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
鉴于这些文件:
$ ls
file1 file2 file21 file3 fileFoo
我期待这种通配模式(启用 extglob 的 bash):
$ ls file?({1..2}|Foo)
输出:
file1 file2 fileFoo
但是我得到的是 fileFoo
列出了两次:
$ ls file?({1..2}|Foo)
file1 file2 fileFoo fileFoo
“或”的两边都不会产生意想不到的结果:
$ ls file?({1..2})
file1 file2
$ ls file?(Foo)
fileFoo
那么为什么当我“或”表达式时 fileFoo
打印两次以及匹配范围的正确通配模式是什么(例如上面的 1-2 但可以是 17-593 或任何其他范围)或其他一些不相关的字符串(例如上面的 Foo)?
$ bash --version
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)
最佳答案
扩展在 globbing 之前执行:
file?({1..2}|Foo)
成为
file?(1|Foo) file?(2|Foo)
然后两个参数都被通配。
仅使用如下扩展按预期工作,但会绊倒 nullglob
等:
file{{1..2},Foo}
关于bash extglob 范围或值匹配相同的文件名两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424626/
鉴于这些文件: $ ls file1 file2 file21 file3 fileFoo 我期待这种通配模式(启用 extglob 的 bash): $ ls file?({1..2}|Fo
我正在尝试使用参数扩展来转义括号。虽然如果我启用了 extglob,但以下代码不起作用: #!/usr/bin/env bash shopt -s extglob foo='file(2)' foo=
打开extglob,我想匹配一个变量 *( )x* (在正则表达式中:/^ *x.*/) 这个: main(){ shopt -s extglob local line=' x bar'
假设我有以下目录结构 ./testdir ./testdir/a.c ./testdir/b.c ./testdir/testdir2/ ./testdir/t.tar 假设我的 CWD 是 test
我想将正则表达式转换成 glob 我在看 jakarta oro但我找不到适合我需要的方法。它编译正则表达式并返回其等效的 glob 都是Type-3文法,理论上应该可以。 不幸的是,我在使用 JDK
我有以下 Dockerfile FROM python:3.9-slim-buster ## DO SOMETHING HERE RUN /bin/bash -c shopt -s extglob &
我以为我理解了可选 的用法?(pattern-list) 在 bash (当 extglob shell 选项打开时)并且默认在 ksh .例如在 bash : $ shopt -s extglob
我刚刚在这里发现了 bash extglob shell 选项:- How can I use inverse or negative wildcards when pattern matching
代码 shopt -s extglob cp -r !(Backups.backupdb) /home/masi/Documents/ cp -r !(Applications.noindex) /h
我在 Debian 8.1、GNU bash、版本 4.3.30(1)-release (x86_64-pc-linux-gnu) 和具有 500 GB SSD 和 8 GB 闪存的 Lenovo G
如果 glob */ 只匹配目录,那么逻辑上 extglob !(*/) 应该匹配非目录;但这不起作用。这是一个错误还是我遗漏了什么?这适用于任何 shell 吗? 测试1证明*/有效 $ cd /t
问题 当在 subshell 中设置 'extglob' 选项时,Bash 脚本的执行失败并显示以下错误消息: /tmp/foo.sh: line 7: syntax error near unexp
在某些脚本中,我想使用当前文件夹中的文件夹名称。我想获取文件夹名称,这里我只会把有问题的部分放在例子中。如果我从终端运行它,我会得到: $ for D in */; do echo ${D%%+(/)
我正在通过自制软件安装星舰,但出现此错误: Permission denied @ apply2files - /usr/local/lib/node_modules/expo-cli/node_mo
我是一名优秀的程序员,十分优秀!