Конкатенация строк, файлов и вывод программы в Bash
Вариант использования - это, в моем случае, конкатенация CSS-файлов, прежде чем она будет минимизирована. Чтобы объединить два файла CSS:
cat 1.css 2.css > out.css
Чтобы добавить текст вone single положение, я могу сделать
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
Чтобы добавить STDOUT изone другая программа:
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 ;-) --------^
(В основном, имеяcat
для обработки нескольких STDIN было бы достаточно, я думаю, как
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
Но я не вижу, как я могу получить к ним доступ.)