我使用以下命令创建了要测试的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
您正在使用bash还是zsh?
—
Braiam 2014年
目前,我正在使用bash(我在工作),但是在我自己的笔记本电脑上,我使用zsh。我原本希望大括号扩展在这两者中可以相同地工作,但事实并非如此。
—
iconoclast
在这种情况下,Gnouc答案将与不同的shell最兼容。
—
Braiam
理查德的答案会同样兼容吗?(它还具有更简单的优点,因此下次我不想使用它时,我不必停下来思考一下。)另一方面,Gnouc的回答也很好。我想我从格伦·杰克逊的答案中学到了最多的东西。Leiaz的答案似乎最简单,最优雅,但是当然只有zsh。
—
iconoclast 2014年