El caso de uso es, en mi caso, la concatenación de archivos CSS, antes de que se minimice. A concat dos archivos CSS:Concatenar cadenas, archivos y salida de programa en Bash
cat 1.css 2.css > out.css
Para añadir un poco de texto en una sola posición, no puedo hacer
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
Para añadir STDOUT de uno otro programa:
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
Hasta ahora todo bien. Pero regularmente entro en situaciones en las que necesito mezclar varias cadenas, archivos e incluso salidas de programas juntas, como encabezados de derechos de autor, archivos preprocesados por sed(1)
y más. Me gustaría concatenarlos juntos en pequeños pasos y archivos temporales como sea posible, a la vez que tengo la libertad de elegir el orden.
En resumen, estoy buscando una manera de hacer esto en tan pocos pasos como sea posible en Bash:
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
(Básicamente, tener una cat
para manejar múltiples STDINs sería suficiente, supongo, como
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
Pero no puedo ver, cómo puedo acceder a los)
D'oh! Esa es la solución más simple (en mi caso), así que lo aceptaré. – Boldewyn
Por supuesto @Boldewyn debe haber agregado '> concatenated.css' o' | compiler' al final para que funcione para su problema de esta manera: 'cat file1.css <(echo" FOO ") <(command [string | file | output]) file2.css <(echo" BAR ")> concatenado ' – hobs