在我的情况下,使用场景是CSS文件串联,在进行最小化之前。要将两个CSS文件串联起来:
cat 1.css 2.css > out.css
为了在单个位置添加一些文本,我可以这样做
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
为了添加来自另一程序的标准输出:
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
目前为止一切顺利。但我经常遇到需要混合多个字符串、文件甚至程序输出的情况,例如版权头、通过sed(1)
预处理的文件等等。我想尽可能地将它们连接在一起,步骤和临时文件尽量少,同时具有选择顺序的自由。
简而言之,我正在寻找在Bash中以尽可能少的步骤完成此操作的方法:
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
基本上,拥有一个能够处理多个标准输入的cat
就足够了,我猜想,像这样:
(Basically, having a cat
to handle multiple STDINs would be sufficient, I guess, like
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
但我不明白,我如何访问它们。
> concatenated.css
或| compiler
才能使它像这样对他的问题起作用:cat file1.css <(echo "FOO") <(command [string|file|output]) file2.css <(echo "BAR") > concatenated
。 - hobs