sed text anhängen opensuse 10.2
Hallo miteinander, ich wll einen Text an den Text einer Teile anhängen... (ist ein Punktcode für ein GIS-System) (Datei hat 2,5 Millionen Sätze, unter windows sicher nicht zu machen..) sämtliche googles sagen mir(sinngemäß) : cat ./dgm-asci.asc | sed 's/^.*$/& 303/g' > dgm-asc_1.txt was rauskommt ist der text vor der Zeile !! dabei will ich nur eine " 303" als Code anhängen.. vermutlich Brett vor dem Kopf.. :-(( Grüße GG -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Die, 13 Feb 2007, Georg Golombek schrieb:
ich wll einen Text an den Text einer Teile anhängen... (ist ein Punktcode für ein GIS-System)
(Datei hat 2,5 Millionen Sätze, unter windows sicher nicht zu machen..)
sämtliche googles sagen mir(sinngemäß) :
cat ./dgm-asci.asc | sed 's/^.*$/& 303/g' > dgm-asc_1.txt
was rauskommt ist der text vor der Zeile !!
Das sollte so funktionieren: $ echo 'foo 1 2 3 blubb' | sed 's/^.*$/& 303/g' foo 1 2 3 blubb 303 Was genau machst du? -dnh -- WoKo ist so etwas, wie eine seltsame Schleife. Wenn zwei von ihnen zusammen- kommen, erklären sie sich gegenseitig für nichtexistent und löschen sich auf diese Weise aus. Zum Schluß wird einer übrigbleiben. Und den können wir dann ganz leicht am nächsten Baum aufknüpfen... [Daniel Reutter in dag°] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Dienstag 13 Februar 2007 22:30:35 schrieb David Haller:
Hallo,
Am Die, 13 Feb 2007, Georg Golombek schrieb:
ich wll einen Text an den Text einer Teile anhängen... (ist ein Punktcode für ein GIS-System)
(Datei hat 2,5 Millionen Sätze, unter windows sicher nicht zu machen..)
sämtliche googles sagen mir(sinngemäß) :
cat ./dgm-asci.asc | sed 's/^.*$/& 303/g' > dgm-asc_1.txt
was rauskommt ist der text vor der Zeile !!
Das sollte so funktionieren:
$ echo 'foo 1 2 3 blubb' | sed 's/^.*$/& 303/g' foo 1 2 3 blubb 303
Was genau machst du?
beruflich oder persönlich? .. deckt sich fast. ich muss (will) eine Punktwolke von ca 2,5 Mio Höhenpunkten per Software-Tool (windows) in eine Oracle - Datenbank übernehmen. Das W-Software Tool verlangt nach einem Punktcode am Ende der Zeile. Ich dachte mit sed bringe ich es locker aus dem Gedächtnis hin... ..weit gefehlt. mein Unix - Scriptbuch ist gerade im Büro :-(( da ich seit ca 5 Jahren ausschließlich in windows machen muss, habe ich es nicht mehr im Kopf... deswegen frage ich nach einer schnellen Lösung um einen Codetext " 303" (ist für Höhenschichtlinien-Punkt) einfach an jeden Zeilentext hinzuhängen (ohne Zeilenumbruch). bisher habe ich es geschafft (siehe oben) ihn per sed vorne hinzuhängen, obwohl er lt. man eigentlich hinten landen sollte. Grüße GG -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Die, 13 Feb 2007, Georg Golombek schrieb:
Am Dienstag 13 Februar 2007 22:30:35 schrieb David Haller:
Am Die, 13 Feb 2007, Georg Golombek schrieb:
ich wll einen Text an den Text einer Teile anhängen... (ist ein Punktcode für ein GIS-System)
(Datei hat 2,5 Millionen Sätze, unter windows sicher nicht zu machen..)
sämtliche googles sagen mir(sinngemäß) :
cat ./dgm-asci.asc | sed 's/^.*$/& 303/g' > dgm-asc_1.txt
was rauskommt ist der text vor der Zeile !!
Das sollte so funktionieren:
$ echo 'foo 1 2 3 blubb' | sed 's/^.*$/& 303/g' foo 1 2 3 blubb 303
Was genau machst du? [..] da ich seit ca 5 Jahren ausschließlich in windows machen muss, habe ich es nicht mehr im Kopf...
Mein Beileid. Arme Sau.
deswegen frage ich nach einer schnellen Lösung um einen Codetext " 303" (ist für Höhenschichtlinien-Punkt) einfach an jeden Zeilentext hinzuhängen (ohne Zeilenumbruch).
Das hast du doch hinbekommen! Wie du an meinem Beispiel siehst macht schon der von dir gemailte sed-Befehl das was du willst. Wenn was nicht klappt, dann machst du bei dir irgendwas anders.
bisher habe ich es geschafft (siehe oben) ihn per sed vorne hinzuhängen, obwohl er lt. man eigentlich hinten landen sollte.
Tut er ja auch. Deswegen meine Frage (was genau machst du?). Hier nochmal präzisiert: Was genau machst du und was genau tut dann dabei nicht? Achso, mir dämmert's grad. Die Eingabedatei ist ne Windows-Text-Datei? Dann spielen dir die CRs ('\r') einen Streich (sed macht schon das richtige, es sieht aber flasch aus). Folgendes sollte auch mit Win-Dateien tun: a) mit erhalten der Windows-Zeilenumbrüche: echo -en 'a\r\nb\r\n' | sed 's/^\(.*\)^M$/\1 303^M/' ^^ mit Strg+v Strg+Enter eingeben b) ohne: echo -en 'a\r\nb\r\n' | sed 's/^\(.*\)^M$/\1 303/' oder echo -en 'a\r\nb\r\n' | tr -d '\r' | sed 's/^.*$/& 303/' Bei letzterem werden evtl. weiter vorne in einer Zeile auftrendende '\r' mit gelöscht! Also aufpassen. Du warst also nah dran. -dnh -- Intelligent ist es, wenn man mit Argumenten, die haltbar sind, es schafft, andersdenkende von seiner Denkweise zu überzeugen. [WoKo in dag°] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch 14 Februar 2007 04:33:26 schrieb David Haller:
Hallo, .....
Mein Beileid. Arme Sau.
zu was? zu meiner Alzheimer oder zum zweiten ;-))
deswegen frage ich nach einer schnellen Lösung um einen Codetext " 303" (ist für Höhenschichtlinien-Punkt) einfach an jeden Zeilentext hinzuhängen (ohne Zeilenumbruch).
Das hast du doch hinbekommen! Wie du an meinem Beispiel siehst macht schon der von dir gemailte sed-Befehl das was du willst. Wenn was nicht klappt, dann machst du bei dir irgendwas anders.
bisher habe ich es geschafft (siehe oben) ihn per sed vorne hinzuhängen, obwohl er lt. man eigentlich hinten landen sollte.
Tut er ja auch. Deswegen meine Frage (was genau machst du?). Hier nochmal präzisiert:
Was genau machst du und was genau tut dann dabei nicht?
Achso, mir dämmert's grad. Die Eingabedatei ist ne Windows-Text-Datei?
das war der Hinweis! habe einfach dos2unix bemüht und anschließend sed -e 's/\(^.*$\)/\1 303/' < dgm-asci.asc > dgm-asc_1.txt und schon hats geklappt. Danke an David und Thomas! Grüße GG -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 14 Feb 2007, Georg Golombek schrieb:
Am Mittwoch 14 Februar 2007 04:33:26 schrieb David Haller:
Hallo, .....
Mein Beileid. Arme Sau.
zu was? zu meiner Alzheimer oder zum zweiten ;-))
Zum 'ausschliesslich Windows'. [..]
Achso, mir dämmert's grad. Die Eingabedatei ist ne Windows-Text-Datei?
das war der Hinweis!
*heh* -dnh -- 93: Emacs Warum werden die Funktionen nicht mit Passwörtern versehen? (Frank Klemm) -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Georg Golombek wrote:
[...] ich wll einen Text an den Text einer Teile anhängen... (ist ein Punktcode für ein GIS-System)
(Datei hat 2,5 Millionen Sätze, unter windows sicher nicht zu machen..)
sämtliche googles sagen mir(sinngemäß) :
cat ./dgm-asci.asc | sed 's/^.*$/& 303/g' > dgm-asc_1.txt
was rauskommt ist der text vor der Zeile !!
dabei will ich nur eine " 303" als Code anhängen..
Ein cat mit einer Pipe zu sed oder awk ist eigentlich immer ueberfluessig, da sowohl sed als auch awk selbst aus Dateien lesen koennen. Wenn ich Dich richtig verstanden habe, sollte ein schlichtes awk '{print $0,"303"}' < dgm-asci.asc > dgm-asc_1.txt ungefaehr das machen, was Du suchst. Anpassungen solltest Du selbst taetigen koennen. Mit sed gehts natuerlich auch, ich kann an Deinem Kommando eigentlich keinen Fehler erkennen. sed -e 's/^.*$/& 303/' < bla.dat > dgm-asc_1.txt funktioniert hier einwandfrei. Bist Du sicher, dass Du nicht ein paar Sonderzeichen o.ae. in Deinen Zeilen hast? sed -e 's/\(^.*$\)/\1 303/' < dgm-asci.asc > dgm-asc_1.txt sollte uebrigens auch gehen... Cheers, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
David Haller
-
Georg Golombek
-
Thomas Hertweck