レコードの最後に改行を入れなかったプログラムによって生成されたファイルがあります。レコード間に改行を入れたいのですが、簡単なsedスクリプトでそれを行うことができます。
sed -e 's/}{/}\n{/g'
問題は、入力ファイルのサイズが数ギガバイトであるため、sedへの入力行の長さが数GBであることです。sedはメモリに行を保持しようとしますが、この場合は機能しません。私は--unbufferedオプションを試しましたが、それはそれが遅くなるようで、正しく終了することを許可しませんでした。
trしてに翻訳}し\n、次に各行の終わりにsedを追加するために使用でき}ますか?このように:tr '}' '\n' < your_file.txt| sed 's/$/}/'
printf "\n" >> file
}{数ギガバイトになるまで繰り返し続ければ十分だと思います。
dd if=file cbs=80 conv=unblockを実行しますが、それほど簡単ではありません。