Verketten Sie Strings, Dateien und Programmausgaben in Bash
Der Anwendungsfall ist in meinem Fall die Verkettung von CSS-Dateien, bevor sie minimiert werden. So verknüpfen Sie zwei CSS-Dateien:
cat 1.css 2.css > out.css
So fügen Sie Text beieine einzelne Position kann ich tun
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
Hinzufügen von STDOUT vonein anderes Programm:
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
So weit, ist es gut. Aber ich komme regelmäßig in Situationen, in denen ich mischen mussmehrere Zeichenfolgen, Dateien und sogar Programmausgaben werden zusammen ausgegeben, wie Copyright-Header, Dateien, die von vorverarbeitet wurdensed(1)
und so weiter. Ich möchte sie in möglichst kleinen Schritten und temporären Dateien zusammenfügen und dabei die Freiheit haben, die Reihenfolge zu bestimmen.
Kurz gesagt, ich suche nach einer Möglichkeit, dies in Bash in möglichst kleinen Schritten zu tun:
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
(Grundsätzlich mit acat
mehrere STDINs zu behandeln, würde ausreichen, denke ich
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
Aber ich verstehe nicht, wie ich darauf zugreifen kann.)