问题标签 [brace-expansion]

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.

0 投票
2 回答
118 浏览

bash - 如何在大括号扩展(范围)上应用参数扩展?

我想应用参数扩展(例如搜索和替换)以从大括号扩展{a..z})中删除空格。有可能的?

所以我有以下范围:{a..z}它包含所有字母,我想一次性删除空格。

这是更长的示例:

是否可以直接在范围上应用参数扩展?或者至少在一个表达式中实现它,尤其是在没有将其分配给变量的情况下?


一个示例用法是为 动态指定所有参数getopts,例如:

但是这不起作用(例如./az.sh -a -b -c),因为需要先删除该范围内的空格。

0 投票
1 回答
145 浏览

bash - Bash 括号扩展:如何将所有文件名与数字匹配?

我想匹配目录中的所有文件名,如下所示:

如果我做

我明白了

所以它匹配我想要的所有文件,除了h12.txt,因为它有两位而不是一位。是否有一位或多位数字的扩展?

0 投票
0 回答
1407 浏览

shell - 为什么 zsh 不执行大括号扩展?

我的默认 shell 是 zsh ( /bin/zsh)。当我第一次打开终端会话时,字符的大括号扩展不起作用,而数字扩展工作正常。运行zsh以打开一个新的 shell 解决了这个问题:

这发生在终端和 iTerm 中,并且不是由于任何设置.zshrc(在没有该文件的情况下不变)。zsh 版本在这两种情况下都是相同的,并且大于 5.0.7,所以这个相关问题没有解释。我认为它与登录/非登录 shell 之间的区别有某种关系,但我不知道它为什么会这样做。

为什么 zsh 不在这里执行大括号扩展?

0 投票
3 回答
2064 浏览

bash - Bash:for循环,列表中带有大括号扩展

我想编写一个 for in 循环,其中可能的值取自另一个变量。我无法弄清楚的部分是如何包含需要大括号扩展的值。例如:

我得到的是

但我想要的是

有谁知道我怎样才能让它工作?

非常感谢!

0 投票
1 回答
182 浏览

bash - Brace expansion with $@ arguments

Suppose I call a script with 3 arguments, a, abc, and xyz such that $@ contains these three arguments.

Suppose I want to call write a command:

How would I accomplish that?

I don't think {foo,bar}$@ or {foo,bar}{$@} work since brace expansion happens before $@ is expanded.

0 投票
3 回答
1220 浏览

bash - 如何对变量进行大括号扩展?

考虑以下脚本:

这个脚本的输出是:

我想要echo${EX}. 因此,我想看到一个输出

我想创建一个脚本,用户可以在其中提供带有大括号的路径,在该路径中复制它的每个扩展版本。

像这样的东西:

我怎样才能做到这一点?

0 投票
3 回答
101 浏览

shell - 解释括号 grep 中的 shell 变量

我有这样的命令:

它工作得很好,但我需要使用这样的文件名提取常量:

由于大括号,这不起作用。我该怎么做 ?

0 投票
4 回答
1507 浏览

bash - 如何在 Bash 中编写花式缩进的多行大括号扩展?

我正在处理这样的一行:

这条线很长。我想切割它,使其宽度适合 80 列线。我试图用反斜杠转义行尾,但空间对齐会破坏扩展:

0 投票
4 回答
50 浏览

bash - 如何在 Bash 中将 `4-7` 替换为 `4,5,6,7`

目标

我有一个长字符串s,它代表一系列用逗号和破折号分隔的数字(见下文)。当多个数字相互跟随时,两个极端数字被写入并用破折号分隔。例如,系列4,5,6,7写为4-7。我的目标是扩展此字符串以使所有数字都用逗号分隔(4-7应该成为4,5,6,7)。

我做了什么

这是字符串的示例

我想首先4-7通过{4..7}(使用 sed 反向引用)替换类型的模式

然后评估字符串以扩展大括号

但是,当我运行最后一个命令时,扩展是“以阶乘方式”完成的(导致 RAM 使用量激增)。

问题

4-7如何在4,5,6,7我的字符串中替换那种模式?

版本

我在Mac OS X 10.11.3使用Terminal 2.6.1 (361.1)

0 投票
1 回答
110 浏览

shell - 在这种鱼(壳)案例中,为什么大括号扩展不像循环那样工作?

我希望这些命令的行为相同:

如果使用 #1 运行而不返回单行,echo而 #2 返回两行,这一事实让我相信存在差异。第二个版本有效,第一个版本只运行第一个脚本。

这是为什么?