如何将文本文本添加到Unix'cat'命令中
问题描述:
我试图将cat一些文件放在一起,同时在文件之间添加一些文本。我是Unix新手,我没有语法的问题。如何将文本文本添加到Unix'cat'命令中
这里是我的失败尝试:
cat echo "# Final version (reflecting my edits)\n\n" final.md echo "\n\n# The changes I made\n\n" edit.md echo "\n\n#Your original version\n\n" original.md > combined.md
我该如何解决这个问题?我应该使用管道还是什么?
答
如果我理解你,应该是这样的:
echo "# Final version (reflecting my edits)\n\n" >> combined.md
cat final.md >> combined.md
echo "\n\n# The changes I made\n\n" >> combined.md
cat edit.md >> combined.md
等。
答
的工艺替代似乎工作:
$ cat <(echo 'FOO') foo.txt <(echo 'BAR') bar.txt
FOO
foo
BAR
bar
您也可以使用此文档中命令替换。
$ cat <<EOF
FOO
$(< foo.txt)
BAR
$(< bar.txt)
EOF
答
使用命令组的输出合并成一个流:
{
echo -e "# Final version (reflecting my edits)\n\n"
cat final.md
echo -e "\n\n# The changes I made\n\n"
cat edit.md
echo -e "\n\n#Your original version\n\n"
cat original.md
} > combined.md
有技巧,你可以用进程替换和命令替换(见利Levitsky的答案)扮演一个做这一切命令(而不是这里使用的单独的cat
进程),但这应该足够高效,而且文件很少。
+0
很好的选择,以避免不得不重复指定相同的输出文件 – erjoalgo 2018-01-25 03:49:23
是的!谢谢! – incandescentman 2013-02-14 22:09:48