如何在Unix'cat'命令中添加文字文本

时间:2013-02-14 20:42:53

标签: bash cat

我正在尝试cat一些文件,同时在文件之间添加一些文本。我是一个Unix新手,我没有语法的悬念。

这是我失败的尝试:

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

我该如何解决这个问题?我应该使用烟斗还是其他东西?

3 个答案:

答案 0 :(得分:6)

使用命令组将输出合并为一个流:

{
   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

您可以使用流程替换和命令替换(请参阅Lev Levitsky的答案)使用一个命令(而不是此处使用的单独cat进程)来完成所有操作,但这应该足够有效这么少的文件。

答案 1 :(得分:5)

如果我理解你,那应该是这样的:

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

等等。

答案 2 :(得分:4)

流程替换似乎有效:

$ cat <(echo 'FOO') foo.txt <(echo 'BAR') bar.txt
FOO
foo
BAR
bar

您也可以在here-document中使用命令替换。

$ cat <<EOF
FOO
$(< foo.txt)
BAR
$(< bar.txt)
EOF