私の場合、ユースケースは、最小化される前のCSSファイルの連結です。 2つのCSSファイルを連結するには:
_cat 1.css 2.css > out.css
_
1つのシングルの位置にテキストを追加するには、次のようにします。
_cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
_
oneの他のプログラムからSTDOUTを追加するには:
_sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
_
ここまでは順調ですね。しかし、私は定期的に、several文字列、ファイル、さらには著作権ヘッダー、sed(1)
等々。順序を自由に選択できるようにしながら、可能な限り小さなステップと一時ファイルでそれらを連結したいと思います。
要するに、私はこれをBashで可能な限り少ないステップで実行する方法を探しています。
_command [string|file|output]+ > concatenated
# note the plus ;-) --------^
_
(基本的に、複数のSTDINを処理するにはcat
があれば十分だと思います。
_<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
_
しかし、どうすればそれらにアクセスできるのかわかりません。)
これは機能します:
cat 1.css <(echo "FOO") <(sed ...) 2.css <(echo "BAR")
ファイルにリダイレクトされるサブシェルにすべてのコマンドを追加できます。
(
cat 1.css
echo "FOO"
sed ...
echo BAR
cat 2.css
) > output
>>
を使用してファイルに追加することもできます。例えば:
cat 1.css > output
echo "FOO" >> output
sed ... >> output
echo "BAR" >> output
cat 2.css >> output
(これにより、ファイルが繰り返し開いたり閉じたりする可能性があります)
できるよ:
echo "$(command 1)" "$(command 2)" ... "$(command n)" > outputFile