Concatenar seqüências de caracteres, arquivos e saída do programa no Bash
O caso de uso é, no meu caso, concatenação de arquivos CSS, antes de ser minimizado. Para concatir dois arquivos CSS:
cat 1.css 2.css > out.css
Para adicionar algum texto emum único posição, eu posso fazer
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
Para adicionar STDOUT de1 outro programa:
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
Por enquanto, tudo bem. Mas eu regularmente venho em situações, onde eu preciso misturarde várias seqüências de caracteres, arquivos e até mesmo saída do programa juntos, como cabeçalhos de direitos autorais, arquivos pré-processados porsed(1)
e assim por diante. Eu gostaria de concatená-los juntos em tão pequenos passos e arquivos temporários quanto possível, tendo a liberdade de escolher a ordem.
Em suma, estou procurando uma maneira de fazer isso com o mínimo de passos possíveis no Bash:
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
(Basicamente, ter umcat
para lidar com múltiplos STDINs seria suficiente, eu acho, como
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
Mas não consigo ver como posso acessá-los.