Sim, esse é um trabalho para tr
:
tr '\n' 'tr '\n' 'tr '\n' 'tr '\n' '%pre%' < file 1<> file
' < file > file.new
' < file 1<> file
' < file > file.new
Ou no local:
%pre% Aqui, o arquivo é escrito sobre si mesmo. Isso funciona porque estamos sempre escrevendo o máximo de dados que estamos lendo (e não sobrescrevemos dados que ainda não lemos). Se o processo tr
for interrompido, ele poderá ser iniciado novamente para concluir o trabalho.
Ao contrário de perl -pi 's/\n/%code%/'
, que preserva todos os atributos do arquivo e não quebra hardlinks ou links simbólicos e não precisa duplicar os dados no disco (a menos que haja alguma cópia em gravação por baixo).