Christoph Zurnieden: Shell: Ersetzen

Beitrag lesen

Hi,

genau das ist das problem. in der datei kommt nirgendwo ein zeilenumbruch vor. durch sed sollen an bestimmten stellen \n eingebracht werden.
-u hat nicht geholfen. was kann ich noch versuchen?

Entweder ist im Aufruf von sed ein Fehler drin, oder sed ist kaputt (zwar _extrem_ unwahrscheinlich, aber nicht unmöglich). Da Du auf einem Unixsystem zu arbeiten scheinst müßte eigentlich Perl vorhanden sein.

$ for i in  locate .htm ; do cat $i >> testdata ; done

abgebrochen, da vergessen Gänsefüßchen um's $i zu machen,

da ist der Loop bei der ersten Datei mit Leerzeichen

hängengeblieben. Hupps! ;-)

aber immer noch ein rundes halbes Gigabyte (496664200)

time ist nur zum Zwecke der Messung (ist hier ein 1200er

Duron mit 512 MiB RAM)

$ time perl -pie 's/<table>/\n/g' testdata

real    3m36.767s
user    0m18.470s
sys     0m10.460s

Flott ist Perl ja, kann man sagen, was man möchte und

dazu rappelt bei mir Sonntags um 01:00 noch einiges an

Cronjobs los! ;-)

Ein kleiner Test zum Abschluß:

$ grep '<table>' testdata | wc -l
      0

Der Perlbefehl ist auch leicht zu merken, da die Optionen zu einem "pie", einem "Törtchen" also, geordnet werden können.
Siehe auch 'man perlrun'.

so short

Christoph Zurnieden

PS:
Finde die Fehlermeldung von sed aber wirklich _sehr_ merkwürdig. Bist Du Dir sicher, das Du Dich nirgendwo vertippt hast?
CZ