Hi Liste, ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus: xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx; usw... Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx; so ungefähr.. Mit s/\n// und s/\r// habe ich es schon probiert. Geht anscheinend nicht, zumindest bekomme ich keinen Treffer. Weiss da jemand weiter?!? Achja muß ja nicht unbedingt der Sed sein, mit dem ich das mache. -- Danke & Cu Joe
Hallo! Am Freitag, 28. Dezember 2001 14:21 schrieb Joe Mild:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus: xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx; usw... Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx; so ungefähr.. Mit s/\n// und s/\r// habe ich es schon probiert. Geht anscheinend nicht, zumindest bekomme ich keinen Treffer. Weiss da jemand weiter?!? Achja muß ja nicht unbedingt der Sed sein, mit dem ich das mache. Versuch's mal mit
cat text.txt | sed s/$/""/g Guten Rutsch noch Harry
Am Freitag, 28. Dezember 2001 14:31 schrieben Sie:
Hallo!
Mit s/\n// und s/\r// habe ich es schon probiert. Geht anscheinend nicht, zumindest bekomme ich keinen Treffer. Weiss da jemand weiter?!? Achja muß ja nicht unbedingt der Sed sein, mit dem ich das mache.
Versuch's mal mit
cat text.txt | sed s/$/""/g
Guten Rutsch noch
Harry
kommt wieder xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx; raus! Schade noch ne Idee??? -- Danke & Cu Joe
On Fri, Dec 28, 2001 at 02:31:04PM +0100, Harald Latzko wrote:
Am Freitag, 28. Dezember 2001 14:21 schrieb Joe Mild:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus: xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx; usw... Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx; so ungefähr..
Versuch's mal mit
cat text.txt | sed s/$/""/g
Wird nicht klappen. Das $ matcht den Nullstring vor dem Zeilenende, _nicht_ das Zeilenende, bzw den Zeilenwechsel. Wie es richtig ist weiss ich nicht, muesste Google aber wissen. Peter
Mahlzeit! Am Freitag, 28. Dezember 2001 14:47 schrieb Peter Wiersig:
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx; so ungefähr.. Versuch's mal mit cat text.txt | sed s/$/""/g Wird nicht klappen. Das $ matcht den Nullstring vor dem Zeilenende, _nicht_ das Zeilenende, bzw den Zeilenwechsel. Wie es richtig ist weiss ich nicht, muesste Google aber wissen.
Schade, unter HP-UX 10.20 geht's so.... soviel zum Thema GNU-Tools entsprechen in ihrer Syntax derer von HP, IBM etc. CU Harry
Am Freitag, 28. Dezember 2001 14:47 schrieb Peter Wiersig:
On Fri, Dec 28, 2001 at 02:31:04PM +0100, Harald Latzko wrote:
Am Freitag, 28. Dezember 2001 14:21 schrieb Joe Mild:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx; Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx; cat text.txt | sed s/$/""/g Wird nicht klappen. Das $ matcht den Nullstring vor dem Zeilenende, _nicht_ das Zeilenende, bzw den Zeilenwechsel.
weiß nicht, ob es überhaupt mit sed geht aber dies sollte gehen, vielleicht etwas overkill...... $ awk -v ORS="" '{print $0}' text.txt awk arbeitet zwar auch zeilenweise (jede Zeile ist ein Record), aber hier kann der Output-Record-Separator (ORS) explizit gesetzt werden. Gruß Kai
Am Freitag, 28. Dezember 2001 15:22 schrieben Sie:
weiß nicht, ob es überhaupt mit sed geht
aber dies sollte gehen, vielleicht etwas overkill......
$ awk -v ORS="" '{print $0}' text.txt
awk arbeitet zwar auch zeilenweise (jede Zeile ist ein Record), aber hier kann der Output-Record-Separator (ORS) explizit gesetzt werden.
Gruß Kai
Das war's! Du bist der Beste! -- Danke & Cu Joe
Joe Mild wrote:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
so ungefähr..
Vielleicht tut's das: ==================================================================== #!/usr/bin/perl open(FILE,"<test.txt") || die "Kann Input-Datei nicht oeffnen!\n"; open(OUT,">test2.txt") || die "Kann Output-Datei nicht oeffnen!\n"; while(<FILE>) { chomp($_); print OUT $_; } close(FILE); close(OUT); exit(0); ==================================================================== Bin kein absoluter Perl-Spezialist, wahrscheinlich geht es auch noch einfacher, schneller, besser, .... Evtl. sollte man natuerlich die Dateinamen fuer Input und Output auch direkt an der Kommandozeile uebergeben und nicht fest im Skript stehen haben, aber das sollte nur noch ein kleiner Schritt sein. Gruesse, Thomson -- Thomas Hertweck, Geophysicist Geophysical Institute, University of Karlsruhe
Hallo Joe, * Am 28.12.2001 um 14:21 Uhr schrieb Joe Mild:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
wie wärs mit einem schlichten: tr -d "\n" <eingabe.dat >ausgabe.dat Jürgen -- Die Natur ergreift immer die Partie des versteckten Fehlers. / Registered Linux-User #130804 http://counter.li.org \ \ Linux Stammtisch Bremerhaven http://linux.hs-bremerhaven.de /
Am Freitag, 28. Dezember 2001 16:26 schrieben Sie:
Hallo Joe,
* Am 28.12.2001 um 14:21 Uhr schrieb Joe Mild:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
wie wärs mit einem schlichten:
tr -d "\n" <eingabe.dat >ausgabe.dat
Jürgen
Super der funktioniert auch. Gefällt mir noch besser als das mit dem awk. -- Danke & Cu Joe
Juergen Schwarting wrote:
* Am 28.12.2001 um 14:21 Uhr schrieb Joe Mild:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
wie wärs mit einem schlichten:
tr -d "\n" <eingabe.dat >ausgabe.dat
Ach, viel zu einfach .... :-)) Und wieder sieht man mal, wie viele Loesungen es fuer ein einziges kleines Problemchen gibt. Ist schon irgendwie faszinierend. Th. -- Thomas Hertweck, Geophysicist Geophysical Institute, University of Karlsruhe
On Fri, 28 Dec 2001, Joe Mild wrote:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
Vielleicht neben der anderen Vorschlaege auch noch diesen - sozusagen zum sammeln: cat meinedatei | perl -e 'while (<>) {$=~s/\n//;print $_}' Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
On Fri, 28 Dec 2001, Peter Blancke wrote:
On Fri, 28 Dec 2001, Joe Mild wrote:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
Vielleicht neben der anderen Vorschlaege auch noch diesen - sozusagen zum sammeln:
cat meinedatei | perl -e 'while (<>) {$=~s/\n//;print $_}'
Oh... da habe ich mir einen klitzekleinen Fehler eingebaut. Richtig muss das natuerlich heissen: cat meinedatei | perl -e 'while (<>) {$_=~s/\n//;print $_}' Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
Moin Peter, * Peter Blancke schrieb am 28 Dec 2001:
On Fri, 28 Dec 2001, Joe Mild wrote:
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
cat meinedatei | perl -e 'while (<>) {$_=~s/\n//;print $_}'
perl -pe 's/\n//' meinedatei ;-) Gruß, Sebastian -- Do not meddle in the affairs of Wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.sh/faq/
Joe Mild wrote (Freitag, 28. Dezember 2001 14:21):
ich bin gerade mit sed am editieren vom ein paar Textdateien. Nun habe ich folgendes Probelm die Daten sehen monentan so aus:
xxxxxxxxxx; xxxxxxxxxx; xxxxxxxxxx;
usw...
Diese will ich jetzt in einer Zeile stehen haben. xxxxxxxxx;xxxxxxxxxx;xxxxxxxxxx;
Nach den ganzen awk-, perl- und sonstigen Lösungen hätte ich zur Vollständigkeit eine sed-Lösung: sed ':a;N;$!ba;s/\n//g' <inputfile >outputfile Das verkettet im Puffer mittels einer Schleife alle Zeilen und substituiert dann die Newlines weg. Anders kommt man an die Newlines nicht heran. Eine sehr problematische Lösung bei größeren Files. tr ist das optimale Tool für diese Aufgabenstellung. Thomas.
participants (9)
-
Harald Latzko
-
Joe Mild
-
Juergen Schwarting
-
Kai Lindenberg
-
Peter Blancke
-
Peter Wiersig
-
Sebastian Helms
-
Thomas Hertweck
-
Thomas Hofer