Hallo an alle, ich hoffe, es ist jemand da, der sich in dr Materie besser auskennt wie ich. Ich habe Dateien die ich bereinigen möchte, wo Texte stehen wie Blatt 2@@ CCCCCCC Es sollen die "@@" und die "CCCCCCCCC" weg Ich denke, das läßt sich machen, indem ich nach "@@" suche, und dann die nächste Zeile lösche. Danach kann ich mit suchen und ersetzen die "@@" weglöschen. Mit welchem script-befehl geht das? -- Regards, Walter Ulmke -- 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 Walter, Am 08.03.2011 00:06, schrieb Walter Ulmke:
Hallo an alle,
ich hoffe, es ist jemand da, der sich in dr Materie besser auskennt wie ich.
Was hast du bisher unternommen? Suchmaschine schon bedient? <http://lmgtfy.com/?q=sed+tutorial> Manche User in der Mailingliste reagieren ein bisschen allergisch auf solche Art von Hilferufen. Daher wäre es nicht verkehrt auch mal zu erzählen, was man bisher (welche Befehle) gemacht hat und wo es nicht geklappt hat. Dann sieht man auch, dass du dich darum bemühst und nicht aus Bequemlichkeit die Mailingliste bedienst. :-)
Ich habe Dateien die ich bereinigen möchte, wo Texte stehen wie
Blatt 2@@ CCCCCCC
Es sollen die "@@" und die "CCCCCCCCC" weg Ich denke, das läßt sich machen, indem ich nach "@@" suche, und dann die nächste Zeile lösche. Danach kann ich mit suchen und ersetzen die "@@" weglöschen.
Mit welchem script-befehl geht das?
Ungetestet: # cat infile | sed -e 's/@@$//g' -e '/^C*$/d' >outfile -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: <http://www.sebastian-siebert.de> Wichtiger Hinweis zur openSUSE Mailing Liste: <http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette> -- 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
On Dienstag 08 März 2011 00:55:58 Sebastian Siebert wrote:
Hallo Walter,
Am 08.03.2011 00:06, schrieb Walter Ulmke:
Hallo an alle,
ich hoffe, es ist jemand da, der sich in dr Materie besser auskennt wie ich.
Was hast du bisher unternommen? Suchmaschine schon bedient? <http://lmgtfy.com/?q=sed+tutorial>
ja, selbstverständlich. Es gibt auch "man sed" - falls das Deiner Aufmerksamkeit entgangen ist. Vieles habe ich verstanden und anwenden können - aber das Obige bereit mir Schwierigkeiten. Ich habe eh Probleme mit den kriptischen Kommandos von sed.
Manche User in der Mailingliste reagieren ein bisschen allergisch auf solche Art von Hilferufen. Daher wäre es nicht verkehrt auch mal zu erzählen, was man bisher (welche Befehle) gemacht hat und wo es nicht geklappt hat. Dann sieht man auch, dass du dich darum bemühst und nicht aus Bequemlichkeit die Mailingliste bedienst. :-)
wer allergisch reagiert, sollte nicht antworten - so einfach ist das. Ich finde es natürlich, mich an die Liste zu wenden, wenn ich Probleme habe und nicht weiterweiss. Bisher habe ich noch nie eine unfreundliche Reaktion erlebt.
Ich habe Dateien die ich bereinigen möchte, wo Texte stehen wie
Blatt 2@@ CCCCCCC
Es sollen die "@@" und die "CCCCCCCCC" weg Ich denke, das läßt sich machen, indem ich nach "@@" suche, und dann die nächste Zeile lösche. Danach kann ich mit suchen und ersetzen die "@@" weglöschen.
Mit welchem script-befehl geht das?
Ungetestet: # cat infile | sed -e 's/@@$//g' -e '/^C*$/d' >outfile
-- Regards, Walter Ulmke -- 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 08.03.2011 10:59, schrieb Walter Ulmke:
On Dienstag 08 März 2011 00:55:58 Sebastian Siebert wrote:
Am 08.03.2011 00:06, schrieb Walter Ulmke:
Hallo an alle,
ich hoffe, es ist jemand da, der sich in dr Materie besser auskennt wie ich.
Was hast du bisher unternommen? Suchmaschine schon bedient? <http://lmgtfy.com/?q=sed+tutorial>
ja, selbstverständlich. Es gibt auch "man sed" - falls das Deiner Aufmerksamkeit entgangen ist.
Vieles habe ich verstanden und anwenden können - aber das Obige bereit mir Schwierigkeiten. Ich habe eh Probleme mit den kriptischen Kommandos von sed.
Genau, dass hast du leider nicht durchblicken lassen, wenn man deine Mail nochmal liest. :-)
Manche User in der Mailingliste reagieren ein bisschen allergisch auf solche Art von Hilferufen. Daher wäre es nicht verkehrt auch mal zu erzählen, was man bisher (welche Befehle) gemacht hat und wo es nicht geklappt hat. Dann sieht man auch, dass du dich darum bemühst und nicht aus Bequemlichkeit die Mailingliste bedienst. :-)
wer allergisch reagiert, sollte nicht antworten - so einfach ist das.
Ich finde es natürlich, mich an die Liste zu wenden, wenn ich Probleme habe und nicht weiterweiss. Bisher habe ich noch nie eine unfreundliche Reaktion erlebt.
Glück für dich. :-)
Ich habe Dateien die ich bereinigen möchte, wo Texte stehen wie
Blatt 2@@ CCCCCCC
Es sollen die "@@" und die "CCCCCCCCC" weg Ich denke, das läßt sich machen, indem ich nach "@@" suche, und dann die nächste Zeile lösche. Danach kann ich mit suchen und ersetzen die "@@" weglöschen.
Mit welchem script-befehl geht das?
Ungetestet: # cat infile | sed -e 's/@@$//g' -e '/^C*$/d'>outfile
Hast du den oben genannten Einzeiler schon ausprobiert? -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: <http://www.sebastian-siebert.de> Wichtiger Hinweis zur openSUSE Mailing Liste: <http://de.opensuse.org/OpenSUSE_Mailinglisten-Netiquette> -- 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
Hi, Am 08.03.2011 00:55, schrieb Sebastian Siebert:
Hallo Walter,
Ungetestet: # cat infile | sed -e 's/@@$//g' -e '/^C*$/d' >outfile
ich würde das so machen: das: sed -i -e 's/@@$//g' -e '/^C\+$/d' file macht aus: Blatt2@@ CCCCCCC CDFE anderer text das: Blatt2 CDFE anderer text Gruß Chris -- 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
On Tue, March 8, 2011 12:55 am, Sebastian Siebert wrote:
Am 08.03.2011 00:06, schrieb Walter Ulmke:
Ich habe Dateien die ich bereinigen möchte, wo Texte stehen wie
Blatt 2@@ CCCCCCC
Es sollen die "@@" und die "CCCCCCCCC" weg Ich denke, das läßt sich machen, indem ich nach "@@" suche, und dann die nächste Zeile lösche. Danach kann ich mit suchen und ersetzen die "@@" weglöschen.
Mit welchem script-befehl geht das?
Ungetestet: # cat infile | sed -e 's/@@$//g' -e '/^C*$/d' >outfile
Nur löscht das alle Zeilen mit CCCCCCC, unabhängig davon, ob eine Zeile vorher @@ stand. Besser so: sed '/@@$/{N;s/@@\nC\+$//}' file regards, Christian -- 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
Hi
Nur löscht das alle Zeilen mit CCCCCCC, unabhängig davon, ob eine Zeile vorher @@ stand. Besser so:
sed '/@@$/{N;s/@@\nC\+$//}' file
das kannte ich noch nicht. Aber das löscht auch "leerzeilen" nach der "CCCCCC" Zeile. :( Wie verhinder man das ?
regards, Christian
Chris -- 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
On Dienstag 08 März 2011 14:10:32 Chris wrote:
Hi
Nur löscht das alle Zeilen mit CCCCCCC, unabhängig davon, ob eine Zeile vorher @@ stand. Besser so:
sed '/@@$/{N;s/@@\nC\+$//}' file
das kannte ich noch nicht. Aber das löscht auch "leerzeilen" nach der "CCCCCC" Zeile. :( Wie verhinder man das ?
regards, Christian
Chris
stellvertretend an alle: die "$$" werden gelöscht. Ds kann ich aber selber. Ich habe meine Probleme mit dem Löschen der "CCCCC*". Alle scripts funzen nicht beim Löschen der "CCCCCCCCCCC*" Ich hatte mir gedacht, man nimmt die "$$" als Marker für die CCCCCCCCC, weil diese stets in der nächsten Zeile sind. Dass dieScripte nicht funzen ist mein Fehler (Betriebsblindheit). Die "CCCCCCC*" (es sind immer mind. 3, können aber 0-30 sein) stehen nicht zwingend am Anfang der Zeile. Möglich ist also: Blatt 2@@ CCCCCC oder z.B. Blatt 2@@ CCCCCC Ein anderer Lösungsansatz wäre: man sucht nach einer Zeile in der IRGENDWO "CCCC" drin steht, und löscht diese Zeile. Ich war noch nie gut im Erklären meiner Problemstellungen :-( -- Regards, Walter Ulmke -- 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
Walter Ulmke, Dienstag 08 März 2011:
man sucht nach einer Zeile in der IRGENDWO "CCCC" drin steht, und löscht diese Zeile.
sed -e '/CCCC/d' -- Andre Tann -- 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
On Dienstag 08 März 2011 15:41:14 Andre Tann wrote:
Walter Ulmke, Dienstag 08 März 2011:
man sucht nach einer Zeile in der IRGENDWO "CCCC" drin steht, und löscht diese Zeile.
sed -e '/CCCC/d'
so einfach ist das! Es funzt. André, ich danke Dir! -- Regards, Walter Ulmke -- 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 Tue, 08 Mar 2011, Walter Ulmke schrieb:
On Dienstag 08 März 2011 14:10:32 Chris wrote:
Nur löscht das alle Zeilen mit CCCCCCC, unabhängig davon, ob eine Zeile vorher @@ stand. Besser so:
sed '/@@$/{N;s/@@\nC\+$//}' file
das kannte ich noch nicht. Aber das löscht auch "leerzeilen" nach der "CCCCCC" Zeile. :(
Glaub ich eher nicht.
Die "CCCCCCC*" (es sind immer mind. 3, können aber 0-30 sein) stehen nicht zwingend am Anfang der Zeile.
Möglich ist also:
Blatt 2@@ CCCCCC
oder z.B.
Blatt 2@@ CCCCCC
sed '/@@$/{N;s/@@\n[[:space:]]*C\+$//;}' file -dnh -- Gib einem Hungrigen einen Fisch, und er ist fuer einen Tag satt. Zeig ihm, wie man angelt, und er poebelt Dich an, dass er besseres zu tun haette, als Schnuere ins Wasser haengen zu lassen. -- David Kastrup in de.comp.text.tex -- 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 08.03.2011 22:41, schrieb David Haller:
Glaub ich eher nicht.
schade, ich hätte das nicht gesagt, wenn ich das nicht getestet hätte. aber vielleicht ist ja meine SuSE einfach nur anders. Cheers -- Christian --------------------------------------------------- Der ultimative shop für Sportbekleidung und Zubehör http://www.sc24.de --------------------------------------------------- -- 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
Hi Christian! On Mi, 09 Mär 2011, Christian wrote:
Am 08.03.2011 22:41, schrieb David Haller:
Glaub ich eher nicht.
schade, ich hätte das nicht gesagt, wenn ich das nicht getestet hätte. aber vielleicht ist ja meine SuSE einfach nur anders.
Zeig mal den input und output. Ich glaub das nämlich auch nicht, weil die genannte Syntax nichts mit Leerzeilen macht (und weil ich es auch getestet habe ;) regards, Christian -- 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
Hi,
Zeig mal den input und output. Ich glaub das nämlich auch nicht, weil die genannte Syntax nichts mit Leerzeilen macht (und weil ich es auch getestet habe ;)
muß mich entschuldigen. Ich weis nicht was ich gesehen habe. christian@chrisw:~> cat text Blatt2@@ CCCCCCC CDFE anderer text christian@chrisw:~> sed -e '/@@$/{N;s/@@\nC\+$//}' text Blatt2 CDFE anderer text muß wohl das gewesen sein. christian@chrisw:~> cat text Blatt2@@ CCCCCCC CDFE anderer text christian@chrisw:~> sed -e 's/@@$//g' -e '/^C*$/d' text Blatt2 CDFE anderer text
regards, Christian
sorry -- Christian --------------------------------------------------- Der ultimative shop für Sportbekleidung und Zubehör http://www.sc24.de --------------------------------------------------- -- 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 Wed, 09 Mar 2011, Christian schrieb:
christian@chrisw:~> sed -e 's/@@$//g' -e '/^C*$/d' text Blatt2 CDFE anderer text
Klar. Der zweite Ausdruck (der auf _jede_ Zeile angewendet wird) passt ja auf jede Zeile die auf _beliebig_ viele C in einer Zeile passt. Insbesondere auf "kein C zwischen Zeilenanfang (^) und Ende ($). Die Regex '^C*$' passt eben auf leere Zeilen, und somit werden auch diese gelöscht. -dnh -- Als man ihnen sage, sie hätten schon eine FW auf Linux Basis, sagten sie, das kann man doch nicht machen, das sei doch Open Source, da könnte jeder Hacker sofort einbrechen, weil er ja den die Sourcen kennt... -- Arne-Erik Martin plaudert in suse-linux aus dem Naehkaestchen -- 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 10.03.2011 09:23, schrieb David Haller:
Klar. Der zweite Ausdruck (der auf _jede_ Zeile angewendet wird) passt ja auf jede Zeile die auf _beliebig_ viele C in einer Zeile passt. Insbesondere auf "kein C zwischen Zeilenanfang (^) und Ende ($). Die Regex '^C*$' passt eben auf leere Zeilen, und somit werden auch diese gelöscht.
das mit Zeilenanfang (^) und Ende ($) war mir klar. Aber warum dann die Regex '^C*$' auf leere Zeilen passt versteh ich nicht. danke. -- Christian --------------------------------------------------- Der ultimative shop für Sportbekleidung und Zubehör http://www.sc24.de --------------------------------------------------- -- 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
Hi, Am 10.03.2011 12:04, schrieb Christian:
Hallo,
Am 10.03.2011 09:23, schrieb David Haller:
Klar. Der zweite Ausdruck (der auf _jede_ Zeile angewendet wird) passt ja auf jede Zeile die auf _beliebig_ viele C in einer Zeile passt. Insbesondere auf "kein C zwischen Zeilenanfang (^) und Ende ($). Die Regex '^C*$' passt eben auf leere Zeilen, und somit werden auch diese gelöscht.
das mit Zeilenanfang (^) und Ende ($) war mir klar. Aber warum dann die Regex '^C*$' auf leere Zeilen passt versteh ich nicht.
weil * hier sagt 0 oder mehrmals von 'C'. Alternativ geht + -> '^C+$' -> 1 oder mehrmals C Gruss Werner
Am 10.03.2011 12:04, schrieb Christian:
Hallo,
Am 10.03.2011 09:23, schrieb David Haller:
Klar. Der zweite Ausdruck (der auf _jede_ Zeile angewendet wird) passt ja auf jede Zeile die auf _beliebig_ viele C in einer Zeile passt. Insbesondere auf "kein C zwischen Zeilenanfang (^) und Ende ($). Die Regex '^C*$' passt eben auf leere Zeilen, und somit werden auch diese gelöscht.
das mit Zeilenanfang (^) und Ende ($) war mir klar. Aber warum dann die Regex '^C*$' auf leere Zeilen passt versteh ich nicht.
danke.
Hi, weil "*" für beliebig vieles Auftreten von "C" (also auch _kein_) steht? man 7 regex cu jth -- Joerg Thuemmler www.teddylinx.de/prowald -- 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 10.03.2011 12:04, schrieb Christian:
Hallo,
Am 10.03.2011 09:23, schrieb David Haller:
Klar. Der zweite Ausdruck (der auf _jede_ Zeile angewendet wird) passt ja auf jede Zeile die auf _beliebig_ viele C in einer Zeile passt. Insbesondere auf "kein C zwischen Zeilenanfang (^) und Ende ($). Die Regex '^C*$' passt eben auf leere Zeilen, und somit werden auch diese gelöscht.
das mit Zeilenanfang (^) und Ende ($) war mir klar. Aber warum dann die Regex '^C*$' auf leere Zeilen passt versteh ich nicht.
danke.
Das Zeichen '*' bedeutet, dass das vorherige Zeichen kein oder mehrmals vorkommen kann. In einer Leerzeile kommt 'C' keinmal vor, also paßt '^C*$'. -- Mit freundlichen Grüßen Martin Blank -- 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
Hi, Am 10.03.2011 12:04, schrieb Christian:
das mit Zeilenanfang (^) und Ende ($) war mir klar. Aber warum dann die Regex '^C*$' auf leere Zeilen passt versteh ich nicht.
danke.
danke, habs verstanden. -- Christian --------------------------------------------------- Der ultimative shop für Sportbekleidung und Zubehör http://www.sc24.de --------------------------------------------------- -- 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 (10)
-
Andre Tann
-
Chris
-
Christian
-
Christian Brabandt
-
David Haller
-
Joerg Thuemmler
-
Martin Blank
-
Sebastian Siebert
-
Walter Ulmke
-
Werner Franke