hilfdirselbst.ch
Facebook Twitter gamper-media
Duplex p
Beiträge: 58
5. Jul 2010, 21:19
Beitrag #1 von 15
Bewertung:
(4797 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo,

leider bekomme ich folgende Problem mit Grep nicht gelöst:

ich versuche, eine umfangreiche Textdatei zu bereinigen:

text text text (Tabulatur) text text (Tabulator) text text text (Tabulatur) text text (Tabulator) text text text

Ich möchte den gesamten Text vor dem ersten Tabulator und dem 2 Tabulator löschen:

Ergebnis: (Tabulator) text text text (Tabulatur)

Mit dem Grep: (?<=\t)[^\t]+ habe ich den Bereich gefunden.

Wie kann ich jetzt den Text davor und danach inkl. der Tabulatoren löschen???

Vielen Dank für Eure Hilfe.
Annett
Top
 
X
Kai Rübsamen  M  p
Beiträge: 4457
6. Jul 2010, 08:38
Beitrag #2 von 15
Beitrag ID: #446008
Bewertung:
(4761 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo!

Ich verstehe die Frage vielleicht nicht ganz: Dein Grep findet jeden Text, der einem Tab folgt. Demzufolge auch Text, der drin bleiben soll?!

Dieser Grep findet Text am Anfang eines Absatzes, gefolgt von einem Tab, gefolgt von Text der kein Tab ist:
^[^\t]+\t[^\t]+

Gelöscht werden damit Text > Tab > Text und dein Absatz fängt mit einem Tab an. Ist das das Ziel? Wenn nicht, bitte nochmal beschreiben.

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#445983] Top
 
Duplex p
Beiträge: 58
6. Jul 2010, 16:32
Beitrag #3 von 15
Beitrag ID: #446085
Bewertung:
(4707 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo,

vielleicht hab ich es etwas schlecht erklärt:

ich habe: Text > Tab > Text > Tab > Text> Tab > Text> Tab > Text
ich brauche davon: Text > Tab > Text > Tab > Text> Tab > Text
also nur den Text zwischen dem ersten und dem zweiten Tab.
Der oben genannte Grep findet in meinem Beispiel auch nur den Text zwischen den beiden Tabs. Und auch nur der Text soll erhalten bleiben und alles andere soll gelöscht werden.

Viele Grüße
Annett
als Antwort auf: [#446008] Top
 
vanlent
Beiträge: 153
6. Jul 2010, 16:53
Beitrag #4 von 15
Beitrag ID: #446086
Bewertung:
(4701 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hi Annett,

vielleicht gibt es ja auch noch den Ansatz, das Problem über eine Tabelle zu lösen:
Den Text markieren, in Tabelle konvertieren lassen, dann die betreffenden Spalten löschen, so daß gewünschte Spalte übrig bleibt.
Dann die Tabelle (mit der Restspalte) wieder zu Text konvertieren.

Grüße
Frank
als Antwort auf: [#446085] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
6. Jul 2010, 17:27
Beitrag #5 von 15
Beitrag ID: #446089
Bewertung:
(4687 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hm, so ganz hab ich´s immer noch nicht. Das Text Tab Text verwirrt mich.

Versuch mal das:

Suchen: ^[^\t]+\t([^\t]+).+
Ersetzen: $1

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#446086] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
6. Jul 2010, 17:36
Beitrag #6 von 15
Beitrag ID: #446091
Bewertung:
(4673 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Kein mit jemand erklären, warum "bla" nach dem Ersetzen seine Farbe verliert und grün wird (siehe Screen)?

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#446089] Top

Anhang:
 
Duplex p
Beiträge: 58
6. Jul 2010, 17:38
Beitrag #7 von 15
Beitrag ID: #446093
Bewertung:
(4669 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo Kai,

genau so brauch ich es, vielen, vielen Dank.
Könntest Du mir den Grep zum besseren Verständnis fürs nächste Mal bitte kurz erläutern (die Thematik Grep ist für Laien doch nicht so leicht zu durchschauen).

Dankschön
Annett
als Antwort auf: [#446089] Top
 
vanlent
Beiträge: 153
6. Jul 2010, 17:40
Beitrag #8 von 15
Beitrag ID: #446094
Bewertung:
(4667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Antwort auf [ Kai Rübsamen ] Kein mit jemand erklären, warum "bla" nach dem Ersetzen seine Farbe verliert und grün wird (siehe Screen)?



Hallo Kai,
ist das Format zufällig verschachtelt? ;)

Grüße
Frank
als Antwort auf: [#446091] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
6. Jul 2010, 17:47
Beitrag #9 von 15
Beitrag ID: #446095
Bewertung:
(4658 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo Annett,

Antwort auf: Könntest Du mir den Grep zum besseren Verständnis fürs nächste Mal bitte kurz erläutern

Ich kann´s gleich erläutern:

^[^\t]+\t([^\t]+).+

Suche am Absatzanfang alles was kein Tab ist und das mehrfach ^[^\t]+
, gefolgt von einem Tab \t, gefolgt von allem was kein Tab ist [^\t]+, gefolgt von allem was noch im Absatz ist .+.

Das was ich am Schluß behalten möchte, speichere ich als Unterausdruck in () >> ([^\t]+). Nach Ersetzen mit $1 wird nur dieser Inhalt wieder eingefügt und der Rest dadurch gelöscht.

@ Frank: Man weiß ja nie ;-), aber nein. Ich hatte den Text zunächst nur rot und mich gewundert, dass er anschließend schwarz wie alles war. Zum Eingrenzen des Problems habe ich dann den Text zuvor grün und danach blau gefärbt.

Ergebnis: Nach dem Ersetzen wird die Formatierung des Textes vorher übernommen, warum?

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#446094]
(Dieser Beitrag wurde von Kai Rübsamen am 6. Jul 2010, 17:52 geändert)
Top
 
vanlent
Beiträge: 153
6. Jul 2010, 17:53
Beitrag #10 von 15
Beitrag ID: #446096
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Antwort auf [ Kai Rübsamen ] Hallo Annett,

Code
Könntest Du mir den Grep zum besseren Verständnis fürs nächste Mal bitte kurz erläutern 

Ich kann´s gleich erläutern:

Suche am Absatzanfang alles was kein Tab ist und das mehrfach ^[^\t]+
, gefolgt von einem Tab \t, gefolgt von allem was kein Tab ist [^\t]+, gefolgt von allem was noch im Absatz ist .+.

Das was ich am Schluß behalten möchte, speichere ich als Unterausdruck in (). Nach Ersetzen mit $1 wird nur dieser Inhalt wieder eingefügt und der Rest dadurch gelöscht.

@ Frank: Man weiß ja nie ;-), aber nein. Ich hatte den Text zunächst nur rot und mich gewundert, dass er anschließend schwarz wie alles war. Zum Eingrenzen des Problems habe ich dann den Text zuvor grün und danach blau gefärbt.
Ergebnis: Nach dem Ersetzen wird die Formatierung des Textes vorher übernommen, warum?


Hallo Kai,

habe mal eine Erklärung des Herrn (Prof.) Singelmann gesehen, da hat er von Cursorposition gesprochen. Du suchst ja am Absatzbeginn (^), dieser ist grün formatiert, der (Asci-)Unterausdruck in Deiner ()-Klammer, den Du wieder einfügst, wird an dieser Stelle kopiert und übernimmt daher das (grüne) Format.

Grüße
Frank
als Antwort auf: [#446095] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
6. Jul 2010, 18:09
Beitrag #11 von 15
Beitrag ID: #446098
Bewertung:
(4609 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Antwort auf: Du suchst ja am Absatzbeginn (^), dieser ist grün formatiert, der (Asci-)Unterausdruck in Deiner ()-Klammer, den Du wieder einfügst, wird an dieser Stelle kopiert und übernimmt daher das (grüne) Format.


Hm! Ich sag mal vorsichtig nein:

Folgender Test:
Vor dem ersten Wort ein Leerzeichen eingefügt (schwarz), "T" (grün), "e" blau. Dann mein Grep, egal ob "^" am Anfang oder nicht. Ergebnis siehe Screen.

>> Es wird nicht das Format an der Cursorposition übernommen, sondern das Format der ersten drei Zeichen. Ist das logisch?

Wenn ja, erklärts mir bitte gaaaaaaanz langsam ;-)

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#446096] Top

Anhang:
 
Duplex p
Beiträge: 58
6. Jul 2010, 18:35
Beitrag #12 von 15
Beitrag ID: #446099
Bewertung:
(4563 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Hallo

und herzlichen Dank. So ganz langsam kommt dank Euch etwas Licht ins Dunkle.

Viele Grüße
Annett
als Antwort auf: [#446095] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
18. Sep 2013, 12:33
Beitrag #13 von 15
Beitrag ID: #517457
Bewertung:
(2981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


An den oder diejenige, die mir gerade eine Anfrage per PM mit dem Absender admin geschickt hat?!

Antwort auf: Hallo Hr. Rübsamen,
ich habe Ihre Antwort zu dieser Frage gelesen:

[http://www.hilfdirselbst.ch/gforum/gforum.cgi?post=446008#446008l]

^[^\t]+\t([^\t]+).+

Wie müsste es denn aussehen wenn ich den Text wischen den 3ten und 4ten Tab bräuchte oder zw. 5ten und 6ten?
Mir gelingt es leider so ^[^\t]+\t([^\t]+).+{2} nicht, was mache ich falsch ?

Gruß


Nicht lange nachgedacht, aber bei mir funktioniert folgendes:
S: ^[^\t]+\t[^\t]+\t[^\t]+\t([^\t]+).+
E: $1

also immer [^\t]+\t je nach gewünschter Position dranhängen oder die Kurzform verwenden und einfach die Zahl in der Klammer verändern:
S: ^([^\t]+\t){3}([^\t]+).+
E: $2

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#446099] Top
 
admin S
Beiträge: 1
23. Sep 2013, 12:39
Beitrag #14 von 15
Beitrag ID: #517664
Bewertung:
(2846 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


http://www.hilfdirselbst.ch/gforum/gforum.cgi?post=446008#446008l

Hallo Hr. Rübsamen,
danke für die schnelle Antwort, jetzt ist es mir klar.
Wie kann ich es vermeiden dass im Ergebnis
noch Zeilen die mit "\n" bzw soft return (forced line break) enden hängen bleiben?

Gruß
Thomas
als Antwort auf: [#517457] Top
 
Kai Rübsamen  M  p
Beiträge: 4457
23. Sep 2013, 14:14
Beitrag #15 von 15
Beitrag ID: #517673
Bewertung:
(2817 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

noch eine Frage zu Grep


Das hängt vom gewünschten Ergebnis ab. Wahrscheinlich \n? hinten dran hängen. Dann werden aber evtl. Begriffe aneinander gehängt! Also auch bei Ändern in gegensteuern.

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#517664] Top
 
X