7

ファイル間にテキストを追加しながら、いくつかのファイルをまとめようとしています。私は 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

これを修正するにはどうすればよいですか? パイプか何かを使用する必要がありますか?

4

3 に答える 3

7

プロセスの置換が機能しているようです:

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

ヒアドキュメント内でコマンド置換を使用することもできます。

$ cat <<EOF
FOO
$(< foo.txt)
BAR
$(< bar.txt)
EOF
于 2013-02-14T20:49:54.653 に答える
7

コマンド グループを使用して、出力を 1 つのストリームにマージします。

{
   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 つのコマンドですべてを実行できるトリックがありますが、これは非常に少ないファイルで十分に効率的です。

于 2013-02-14T20:51:53.283 に答える
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

等々。

于 2013-02-14T20:48:04.860 に答える