On Fre, 27 Jul 2001, Jan Trippler wrote:
On Son, 22 Jul 2001 at 23:45 (+0200), David Haller wrote:
On Son, 22 Jul 2001, Jan Trippler wrote: [CR\LF nach LF konvertieren]
cat datei | perl -ne ´s/\r//; print;´ >neue_datei
Jan, Jan, Jan. Jetzt bekommst du nicht nur einen Useless use of cat award von mir, sondern auch gleich noch den "Kanonen auf Spatzen" *eg*
Ich wollte nur mal schauen, ob Du aufpasst ;-)
Apropos: Irgendwo hab ich mal scripts gefunden, bei denen auch ein dos2unix dabei war (ohne pod) enthaelt das: ==== #!/usr/bin/perl -pi.dos s/\r\n/\n/g; ==== *g*
das cat:
perl ... < datei > neue_datei
Du machst ´ne Eingabeumleitung, ich mache eine (nur eben über eine Pipe). Gut, da läuft ein Prozess mehr - ich bin da nicht so knauserig *g*
Naja, ich ja fuer _einzelne_ aufrufe auch nicht, aber erstens ist das eben wirklich ein Klassiker, und in for f in `find /usr/src/linux -type f`; do cat "$f" | grep 'fuck'; done duerfte sich das cat bemerkbar machen. Ja, ich kenne das -exec von find, aber manchmal geht das halt nicht. Und die Schleife koennte ja auch ein 'for i in `seq 0 99`; do ... ; done sein. Generell gilt IMO, dass man sich angewoehnen sollte cat nur wenn noetig zu verwenden...
das perl:
tr -d '\r' < datei > neue_datei
Ich war mir nicht sicher, ob das klappt (und zu faul, es auszuprobieren).
Ja. Das klappt (bei Textdateien!). Ich hab's ja auch aus dem Kofler. ;)
(P.S: der tr-Befehl steht als 'dos2unix' (oder so) im Kofler...
Ich würde nie auf die Idee kommen, den tr an dieser Stelle zu suchen. Ich würde mit man tr nachschauen :-)
Logisch. Aber ich hab halt den Kofler gelesen und das drin gefunden. Davor hab ich recode verwendet... Ach ja, ich hab das von oben mal laufen lassen (und ja, ich greppe oefters durch die Kernelquellen, das Beispiel ist also sinnvoll und mit -exec grep -H 'muster' {} \; bekommt man auch noch die Dateinamen, in dem Fall ist das 'cat' recht weit hergeholt. $ time for f in `find /usr/src/linux/ -type f`; do\ cat "$f" | grep -H 'fuck'; done real 2m17.012s user 0m54.420s sys 1m1.180s $ time for f in `find /usr/src/linux/ -type f`; do grep -H 'fuck' "$f"; done real 1m24.978s user 0m25.770s sys 0m29.460s Hum, knapp 40% schneller... Und ne neue sig hab ich grad auch noch gefunden :) -dnh P.S: Wer meine ueberlangen Zeilen quotet und nicht passend umbricht ist doof *eg* -- If you don't see why, please stay the fuck away from my code. -- Paul "Rusty" Russel, in /usr/src/linux/Documentation/DocBook/kernel-locking.tmpl