将linux命令合并为一个输出

时间:2013-03-21 11:18:13

标签: macos bash ubuntu cat

我将一些文件捕获到markdown解析器中,并希望预先/应用一个头/脚。目前,我使用一些命令来做,但是想用一个衬里来做。这是我要添加的命令...

cat  `find .. -name "*.md" -type f` | marked

这会产生我文档的中间部分,所以我想做一些像......

cat head.template (cat `find ... ` | marked)

3 个答案:

答案 0 :(得分:3)

尝试对“source”命令进行分组,如下所示:

{ cat header_part ; cat `find ...` ; cat footer_part } | marked

如果您只想解析中间部分:

{ cat header_part ; cat `find ...` | marked ; cat footer_part } > output_file

感谢Ansgar Wiechers,更喜欢$()反对提示:

{ cat header_part ; cat $(find ...) | marked ; cat footer_part ) > output_file

答案 1 :(得分:0)

这对我有用,是$( ... commands ... )和后退的结合。

echo `cat head.html.snippet`  `cat $(find .. -name "*.md" -type f) | marked` `cat foot.html.snippet` > all.htm

答案 2 :(得分:0)

这使用较少的子进程,如果名称包含空格,则可以使用:

shopt -s globstar; { cat head.html.snippet; cat ../**/*.md | marked; cat foot.html.snippet; } > all.htm

您也可以使用流程替换:

cat head.html.snippet <(find .. -name '*.md' -exec cat {} \+ | marked) foot.html.snippet > all.htm