Bol*_*wyn 18 bash stdout concatenation
在我的情况下,用例是CSS文件串联,然后才能最小化.要连接两个CSS文件:
cat 1.css 2.css > out.css
Run Code Online (Sandbox Code Playgroud)
要在一个位置添加一些文本,我可以做到
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
Run Code Online (Sandbox Code Playgroud)
要添加STDOUT 一个其他程序:
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但我经常遇到这样的情况,我需要将几个字符串,文件甚至程序输出混合在一起,比如版权标题,预处理的文件sed(1)等等.我想在尽可能少的步骤和临时文件中将它们连接在一起,同时可以自由选择顺序.
简而言之,我正在寻找一种方法,以尽可能少的步骤在Bash中执行此操作:
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
Run Code Online (Sandbox Code Playgroud)
(基本上,有一个cat处理多个STDIN就足够了,我猜,就像
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
Run Code Online (Sandbox Code Playgroud)
但我没有看到,我如何访问这些.)
Pau*_*ce. 26
这有效:
cat 1.css <(echo "FOO") <(sed ...) 2.css <(echo "BAR")
Run Code Online (Sandbox Code Playgroud)
Jon*_*oni 17
您可以在子shell中添加所有命令,并将其重定向到文件:
(
cat 1.css
echo "FOO"
sed ...
echo BAR
cat 2.css
) > output
Run Code Online (Sandbox Code Playgroud)
您也可以附加到文件>>.例如:
cat 1.css > output
echo "FOO" >> output
sed ... >> output
echo "BAR" >> output
cat 2.css >> output
Run Code Online (Sandbox Code Playgroud)
(这可能会反复打开和关闭文件)
nha*_*tdh 14
你可以做:
echo "$(command 1)" "$(command 2)" ... "$(command n)" > outputFile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21854 次 |
| 最近记录: |