我有一个程序生成的文件,该文件未在记录的末尾添加换行符。我想在记录之间添加换行符,我可以使用一个简单的sed脚本来做到这一点:
sed -e 's/}{/}\n{/g'
问题在于输入文件的大小为数GB,因此sed的输入行的长度为数GB。sed尝试在内存中保留一行,在这种情况下不起作用。我尝试了该--unbuffered
选项,但这似乎会使它变慢,并且无法正确完成。
tr
翻译}
成\n
,然后再在每行末尾sed
添加}
?像这样:tr '}' '\n' < your_file.txt| sed 's/$/}/'
printf "\n" >> file
}{
重复直到它达到几GB长为止。
dd if=file cbs=80 conv=unblock
可以执行此操作-但这很少那么简单。