Wie kann ich alle Zeilenenden in einer großen Datei (& gt; 100 MB) ersetzen? Ich habe versucht zu tun
:%s/\n/, /g
aber es ist zu langsam.
Also habe ich einige der Antworten, die von anderen Leuten gegeben wurden, durchgetestet und getestet / getimt, plus eine Python-Antwort von mir. Hier ist, was ich habe:
tr:
%Vor%python:
%Vor%awk:
%Vor%perl:
%Vor%sed:
%Vor%Hier ist die Datei, die ich benutzt habe:
%Vor%Ursprünglich wurden die Timings in Cygwin aufgenommen, sie wurden nun mit vollständig aktualisiertem Ubuntu 9.10 aufgenommen. Außerdem wurde die Textdateigröße auf 100 MB mit 80 Zeichen breiten Zeilen erhöht. Wie Sie sehen können, ist alles andere als sed eine gute Idee.
Verwenden Sie dieses Perl-Skript, um Ihre Datei zu durchsuchen; es wäre schneller, als alles mit VIM im Speicher zu halten. Verteilen Sie die Ausgabe einfach an eine neue Datei.
%Vor%Müssen Sie das in vim machen?
Es gibt ein nettes Unix-Programm, das auf Zeichen basiert. Es heißt tr
.
Einige Referenzen .
In Ihrem Fall wäre es:
%Vor%Tags und Links vim replace line-endings