Questions tagged «brace-expansion»

一种用于生成任意字符串的shell机制。

1
括号扩展范围为什么使用两个点而不是三个点(省略号)?
我终于明白了/发现为什么我从来没有使用bash的(还有zsh的)括号扩展范围正确:语法是{1..10}什么,而不是我认为是一个省略号,即{1...10}。 我可以知道为什么选择两个点而不是三个点吗?如(Wikipedia)链接所示,省略号在计算机编程中的用法是常见且易于理解的,这就是为什么这引起了我的好奇心。

3
Bash扩展十六进制
我想知道是否存在一种使用bash扩展来查看十六进制数字组合的所有可能性的方法。我可以扩展二进制文件 在基地2: echo {0..1}{0..1}{0..1} 这回馈: 000 001 010 011 100 101 110 111 以10为基数: echo {0..9}{0..9} 这回馈: 00 01 02...99 但以十六进制表示: echo {0..F} 只需重复一下: {0..F}

4
从右到左的外壳支架扩展
在zsh(和其他Shell)中,如果我包含类似的参数(例如): {a,b,c}{d,e,f} 大括号扩展将其变为: ad ae af bd be bf cd ce cf 就我的目的而言,参数顺序很重要,并且我需要大括号将其从右向左扩展,而不是从左向右扩展。也就是说,我希望扩展为: ad bd cd ae be ce af bf cf 有没有一种方法可以控制大括号的扩展顺序?我正在寻找在任何情况下都可以使用的东西,而不仅仅是这些论点。


2
bash将通配符扩展与大括号扩展相结合
我正在尝试扩展一个字符串,该字符串涉及通配符和括号内指定的扩展名集合。如以下示例所示,似乎没有任何效果。变量firstList扩大罚款,但没有secondList,thirdList还是fourthList扩展正确。我也尝试过各种版本,eval但都没有用。任何帮助,将不胜感激 #!/bin/bash touch a.ext1 touch b.ext1 firstList='*.ext1' ls $firstList touch a.ext2 touch b.ext2 secondList='*.{ext1,ext2}' ls $secondList ls '$secondList' ls "$secondList" thirdList=*.{ext1,ext2} ls $thirdList ls '$thirdList' ls "$thirdList" fourthList="*.{ext1,ext2}" ls $fourthList ls '$fourthList' ls "$fourthList"

4
在括号扩展期间如何抑制生成的参数之间的间隔?
我使用以下命令创建了要测试的URL列表: echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt 不幸的是,urls.txt每个URL后面都有一个空格(当然,第一个除外)。我了解为什么会发生这种情况,并且我意识到我可以通过在sed表达式中使用管道将其剥离,但是我想知道是否有一种抑制它的方法。(这看起来很愚蠢和古怪,但这与很多人不喜欢“虐待猫”的偏好没有什么不同。) 我尝试使用双引号来抑制单词拆分,但是那也抑制了括号的扩展,所以这是不可行的。 我尝试将IFS更改为空字符串,但也没有用: IFS='' echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt 也没有将其更改为换行符: IFS='\n' echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.