2

假设我有一个名为“combine”的程序,它输入“red”、“green”和“blue”类型的文件来生成输出文件(比如说“color.jpg”)......但是每种类型的数量是任意的。我们还假设除了通过用户如何分类文件之外,没有办法确定文件的类型。在这种情况下,人们通常会怎么做?

例如,在命令行上,一些方法可能是:

command red1,red2,red3 green1,green2 blue1 color.jpg

如果逗号可以出现在文件名中,这种逗号方法就会失效。这是我最喜欢的方法。另一个想法是

command "red1 red2 red3" "green1 green2" "blue1" color.jpg

但这种方法也有名称中的空格问题。

我还可以要求包含列出每种类型文件的 ASCII 文件:

command redlist greenlist bluelist color.jpg

但这需要携带额外的文件。

进一步的想法?有没有标准的 LINUX 方法可以做到这一点?

4

2 回答 2

3

标准方法是这样的:

command --red red1.jpg --red red2.jpg --blue blue1.jpg

短选项:

command -r red1.jpg -r red2.jpg -b blue1.jpg

使用 bash 速记:

command -r={red1,red2}.jpg -b blue1.jpg

(上面的内容被 shell 扩展,所以它看起来像之前的调用。)

以这种方式做事避免了诸如“文件名中没有逗号”之类的任意限制,并且还使您的程序与标准 *nix 实用程序等更具有互操作性xargs

于 2013-03-17T04:35:55.410 回答
1

另一种方式是接受:

command -r redfile1 redfile2 -b bluefile1 blue2 blue2 -g green1

以便:

command -r red* -b blue* -g green*

是可能的。

于 2013-03-17T04:44:14.740 回答