cat report.txt | sed 's/<\/li>/<\/li> \n/g' > report.txt
これにより、明らかに空のファイルが作成されます。
データを処理する前に保存したり、コマンドの実行が終了するまで出力を保存してからファイルに書き込むことができるメカニズムはありますか?
http://en.wikipedia.org/wiki/Pipeline_(Unix)#実装:
「...受信側プログラムは 1 秒あたり 100 バイトしか受け入れられない場合がありますが、データが失われることはありません。代わりに、送信側プログラムの出力がキューに保持されます。受信側プログラムがデータを読み取る準備ができると、操作はシステムはキューからデータを送信し、そのデータをキューから削除します。」
これをすぐにファイルに書き込むのではなく、キューにロードし、コマンドの終了後にアンロードする簡単なトリックがあるように思えますか?
どうもありがとう!