2016-11-23 3 views
1

これは簡単な問題ですが、私はそれに固執しています。私は、さまざまなファイルの内容を取って、その内容の前に各ファイルの名前をヘッダーとして印刷しています。そんなにうまくいく。しかし、あるファイルの内容と次のファイルの内容のヘッダーを空行で区切りたい。新しいファイルにファイルの内容の後に空行を挿入してください

私はそれが見えるようにしたい:

ファイル1ヘッダ

ファイル1つの内容

[空きスペース]

ファイル2ヘッダ

ファイル2つの内容

"{}"の後に\ nを入れてみましたが、うまくいきませんでした。助言がありますか?

find . -type f -name '*_top_hits.txt' -print -exec cat {} \; > combinedresults.txt 

答えて

3

だけで、各ファイルの内容の後に単一の空の新しい行を生成します。また、単一のサブシェルを使用する代わりに複数の-execオプションを使用する必要はありません。

+0

ありがとうございました! sh -cについて説明できますか? – lynkyra

+0

@lynkyra:これらのコマンドを実行するためにシェルを明示的に呼び出すとき、必ずしも 'sh'である必要はなく、' bash -c'でもかまいません。 – Inian

0

あなたは二-execを追加してみてくださいすることができます。この

find . -type f -name '*_top_hits.txt' -print -exec cat {} \; -exec echo \; > combinedresults.txt 

1つの副作用は、新しい行が最後のファイルの内容の後に最後に追加されるということです。

find . -type f -name "*_top_hits.txt" -print -exec sh -c "cat {};echo" \; > combinedresults.txt 

echoとしてfind-execの一環としてechoすることができます単に空

関連する問題