Entfernen von '\r\n' aus textdatei

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von rikola, 20.01.2006.

  1. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hallo,

    ich habe eine Textdatei, in der es Windows-Zeilenumbrueche gibt, d.h., sie enden mit '\r\n'. Ich moechte diese beiden Zeichen entfernen, so dass diese Zeilen keinen Zeilenumbruch mehr haben. Alle anderen normalen Zeilenumbrueche sollen dagegen bleiben.

    Ich habs mit
    Code:
    sed -e "s/\r\n/g" datei.text
    
    versucht, doch das ersetzt nichts. Vermutlich, weil sed eben zeilenorientiert ist... Und
    Code:
    tr -d "\r\n" datei.text
    
    setzt wohl eine oder-Verknuepfing, d.h., es entfernt sowohl '\r\n' als auch '\n'.

    Kann mir jemand sagen, wie ich das richtig anstelle?

    Und bevor ich ein neues Thema eroeffne:
    Die Textdatei ist Ergebnis einer online-Umfrage, bei der (Windows-User) Textfelder ausfuellen und offenbar 'enter' innerhalb eines Feldes druecken.

    Diese Zeilenumbrueche werde von php an die mysql-Datenbank weitergegeben. Gibt es einen Weg (entweder php oder beim Einfuegen in die Datenbank), dass diese Eingaben gleich als char(80) _ohne_ Zeilenumbruch eingefuegt werden?

    Danke fuer jegliche Hinweise oder Hilfe.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Sharoz

    Sharoz Mitglied

    Dabei seit:
    10.11.2005
    Beiträge:
    46
    Zustimmungen:
    0
    Also, ein ziemlich dreckiger Hack währe wohl, mit nl2br aus den Zeilen umbrüchen <br> Tags zu machen, und diese dann raus zu filtern...
    Das fällt mir jetzt so auf die schnelle mit Bordmitteln dazu ein.
    Ansonsten gibt es da doch bestimmt eine Funktion im MySQL für, oder?
    Einfach mal Doku wälzen ;-)

    Sharoz
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Ja danke, ein bisschen weiterwaelzen hat erbracht, dass ich in den php-Dateien nur an einer Stelle ein
    str_replace(array("\r", "\n"), " ", $my_string);
    benutzen muss, um die (zukuenftigen) Zeilenumbrueche in Leerzeichen umzuwandeln.

    Wenn jetzt noch jemand weiss, wie ich in einem bestehenden export der Datenbank die Zeichen "\r\n" so ersetzen kann, dass die entsprechenden Zeilen wieder zusammengefuegt werden, waere das Problem geloest.

    Danke erstmal!
     
  5. #4 helpdesk, 20.01.2006
    helpdesk

    helpdesk Grünschnabel

    Dabei seit:
    20.01.2006
    Beiträge:
    3
    Zustimmungen:
    0
    du suchst sicher dos2unix und unix2dos :rolleyes:
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Nein, ich denke dos2unix hilft mir nicht weiter: Ich wollte Zeilen, die durch '\r\n' getrennt sind, zusammenfassen. Soweit ich weiss, korrigiert dos2unix nur den Zeilenumbruch.

    Ich konnte das Problem mit mysqldump loesen. Dort werden \r und \n als solche ausgeschrieben und habe sie dann in vi ersetzt.
     
  7. #6 Wolfgang, 21.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Aber eine recht simple Lösung gäbe es z.b. mit perl:

    perl -0077 -pi -e '~s/(\r+\n+)//mgs' dos.text

    Gruß Wolfgang
     
  8. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hallo Wolfgang,

    was mir schon länger auf den Nägeln brennt:wofür ist diese ~ vor dem Substitute? Es geht doch auch ohne?
     
  9. #8 Wolfgang, 21.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Latürnich ;) hast Recht.
    Ist nur eine Angewohnheit von mir, die aber nicht schadet bzw. nichts bewirkt.
    Wohl weil ich das oft mit Zuweisung verwende und es früher öfter mal vergessen hatte.

    Gruß Wolfgang
     
  10. oenone

    oenone Freier Programmierer[Mod]

    Dabei seit:
    22.08.2002
    Beiträge:
    599
    Zustimmungen:
    0
    Ort:
    Mannheim
    du willst nicht \r\n entfernen, sondern nur \r. nur so als tipp.. dann sollten auch alle deine selbst erarbeiteten befehle funktionieren.

    auf bald
    oenone
     
  11. #10 Wolfgang, 21.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Der Wunsch war aber ausdrücklich \r\n zu entfernen.
    Sozusagen alle Zeilen die mit CRLF enden joinen.
    Diesen Wunsch wollte ich ihn erfüllen. ;)

    Alle \r ist ja nun doch zu einfach gelle ;)

    Gruß Wolfgang
    PS Das geht natürlich auch mit sed, da sollte man sich mal den g,x oder h Befehl ansehen.
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. oenone

    oenone Freier Programmierer[Mod]

    Dabei seit:
    22.08.2002
    Beiträge:
    599
    Zustimmungen:
    0
    Ort:
    Mannheim
    wenn du alle \r\n entfernst, dann hast du gar keine zeilenumbrüche mehr.

    auf bald
    oenone
     
  14. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Wolfgang_1 hat schon recht mit seiner Interpretation, ich wollte \r\n, aber nicht \n entfernen. Da unter Unix der Zeilenumbruch aus \n besteht, bleiben noch welche uebrig, wenn ich \r\n entferne. Es gibt Zeilenumrueche
    1) weil die Benutzer unter Windows durch druecken der return-Taste welche eingefuegt haben => \r\n
    2) weil man mysql beim Exportieren jeden Tabelleneintrag mit einem abschliesst => \n, kein \r\n

    Wie gesagt, hatte das Problem loesen koennen ueber mysqldump. Aber den Perl-Einzeiler von Wolfgang_1 werde ich mir trotzdem merken.
     
Thema:

Entfernen von '\r\n' aus textdatei

Die Seite wird geladen...

Entfernen von '\r\n' aus textdatei - Ähnliche Themen

  1. Punkt aus Liste entfernen

    Punkt aus Liste entfernen: Hallo, ich habe eine Liste: jal_0.0800_0.9000_90_dunkel.rad jal_0.0800_0.9000_90_hell.rad jal_0.0800_0.9000_90_mittel.rad Und aus der...
  2. wie Alte Kernelversionen unter Debian entfernen

    wie Alte Kernelversionen unter Debian entfernen: Hallo, heute ist das neue Image mit dem Kernel update installiert worden von "linux-image-3.2.0-4-amd64:amd64 3.2.54-2" auf...
  3. Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

    Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED: Hallo zusammen. Ich habe folgendes Anliegen: Ich habe eine HTML Datei mit entsprechenden Tags usw. . Diese möchte ich in eine normale Textdatei...
  4. Debian empfiehlt das Entfernen des Repos debian-multimedia.org

    Debian empfiehlt das Entfernen des Repos debian-multimedia.org: Das Debian-Projekt rät Nutzern eindringlich, die inoffizielle Paketquelle debian-multimedia.org aus den Paketquellen zu entfernen, weil das Angebt...
  5. Gnome will Ausweichmodus entfernen

    Gnome will Ausweichmodus entfernen: Geht es nach dem Veröffentlichungsteam von Gnome, wird Version 3.8 im April 2013 ohne Ausweichmodus erscheinen. Gnome wird dann nur noch auf...