У мене є файли, створені програмою, яка не ставила нові рядки в кінці записів. Я хочу помістити нові записи між записами, і я можу це зробити за допомогою простого сценарію sed:
sed -e 's/}{/}\n{/g'
Проблема полягає в тому, що вхідні файли мають розмір декількох гігабайт, і тому вхідні лінії до sed мають кілька ГБ. sed намагається утримувати лінію в пам'яті, що в цьому випадку не працює. Я спробував --unbufferedваріант, але це, здавалося, зробило його повільніше і не дозволило закінчити правильно.
trперекладом }у, \nа потім використати, sedщоб додати а }в кінці кожного рядка? tr '}' '\n' < your_file.txt| sed 's/$/}/'
printf "\n" >> file
}{повторювати, поки не вистачить кількох гігабайт.
dd if=file cbs=80 conv=unblockце робиться, але це рідко так просто.