sed Laufen wagte ich naiverweise den folgenden Befehl zu verwenden, um eine Datendatei zu verarbeiten:parallel
cat old.one | parallel --pipe 'sed -r "s/\./\,/g"' > new.one
Ziel zu ersetzen war „“ mit ",". Aber die resultierende Datei unterscheidet aus, dass durch sequentielle Behandlung erhalten:
sed -r "s/\./\,/g" old.one > new.one
Vielleicht können parallel arbeiten irgendwie anders gemacht werden? Hier wäre es gut, auf die Semaphore zu verzichten und die Teile erst am Ende zu kombinieren.
Lösung
Vielen Dank! Hier ist meine Ergebnisse:
sed: 13,834 s
sed -r "s /./\,/ g" old.one> new.one
parallel sed: 12,489 s
cat old.one | parallel -k --pipe 'sed -r "s /./\,/ g"'> new.one
tr: 6.480 s
Katze old.one | tr "." ""> New.one
parallel tr: 5.848 s
Katze new.one | parallel -k --pipe tr "." ","> old.one
Sie beiden Ergebnisse und eine kleine Probe Ihrer Eingabedatei schreiben sollen (old.one) –
Beachten Sie, dass Sie 'tr 'verwenden können.' ',' 'Um zwischen den Zeichen zu übersetzen, ist dies schneller als' sed 's /\./,/ g'' – andlrc
Danke für den Hinweis. Tr funktioniert schneller. –