Mit Sed Wörter Manipulieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von garfield.banjo, 10.11.2009.

  1. #1 garfield.banjo, 10.11.2009
    garfield.banjo

    garfield.banjo Grünschnabel

    Dabei seit:
    10.11.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo, ich habe hier ein wahrscheinlich simpeles Problem.
    Ich habe eine Textdatei mit einen Fliesstext. In diesem Text sollen nun alle großgeschriebenen Wörter in eckige Klammern gesetzt werden. Aber irgendwie krieg ich das nicht hin. Hab schon das Man gelesen, aber sehe den Wald vor lauter Bäume nicht. Über jede Hilfe wäre ich dankbar. Bisher stehe ich hier:

    sed "s/A.*/'[A.*]'/g" 1.txt > 2.txt
    Wie sage ich das die Klammern als String benutzt werden soll.
    Danke
     
  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. #2 daboss, 10.11.2009
    Zuletzt bearbeitet: 10.11.2009
    daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Spontan wuerde ich die escapen:
    Code:
    sed "s/A.*/'\[A.*\]'/g" 1.txt > 2.txt
    /Edit: Allerdings wird der Ausschnitt eh nicht das machen, was du laut deiner Beschreibung haben moechtest...
     
  4. #3 garfield.banjo, 10.11.2009
    garfield.banjo

    garfield.banjo Grünschnabel

    Dabei seit:
    10.11.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Soweit war ich auch schon, das ändert alle Nomen mit A in '[A.*]'
    trozdem danke
     
  5. #4 bytepool, 10.11.2009
    Zuletzt bearbeitet: 10.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    im "zu Ersetzen" Teil braucht man nichts escapen, das ist schliesslich keine RegEx. Aber ich hab auch grad n Brett vorm Kopf, so ganz krieg ich das auch nicht hin, weil sed ja greedy matcht:
    Code:
    $ echo "foo bar FOOBAR FOO barfoo BAR" | sed 's$.* \([A-Z]*\).*$[\1]$g'
    [BAR]
    
    So in die Richtung muss das gehen, jetzt muss man sed nur noch klar machen, dass er nicht greedy matchen soll. Das Problem hatte ich schonmal, keine Ahnung wie ich das damals geloest hab...

    Spaetes Edit:
    Upps, "zu Ersetzen" muss natuerlich "zu Ersetzen mit" sein, aber ich hoffe das war aus dem Kontext klar. ;)

    mfg,
    bytepool
     
  6. #5 garfield.banjo, 10.11.2009
    garfield.banjo

    garfield.banjo Grünschnabel

    Dabei seit:
    10.11.2009
    Beiträge:
    3
    Zustimmungen:
    0
    Mit diesem Befehl verwandelt er alle Wörter mit A angefangen in []
    MfG
    bumbum
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 bytepool, 10.11.2009
    Zuletzt bearbeitet: 10.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    kann es sein dass du einfach auf die perfekte Loesung wartest? Hab ich irgendwo geschrieben dass das funktionieren wird? o.O

    Edit:
    Stimmt, wenn greedy gematcht wird, muss man vor allem mit "not" arbeiten um das Muster zu begrenzen, also "[^A-Z]*". Das dann nur noch gruppieren und in die Ersetzung mit aufnehmen, und das Problem ist geloest.

    mfg,
    bytepool
     
  9. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
Thema:

Mit Sed Wörter Manipulieren

Die Seite wird geladen...

Mit Sed Wörter Manipulieren - Ähnliche Themen

  1. Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...

    Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...: Ich habe eine Textdatei in der ich Einträge bis zum 3. Leerzeichen mit den restlichen Zeilen (auch nur bis 3. Leerzeichen) vergleichen muss und...
  2. LibreOffice-Wörterbücher und LanguageTool in neuen Versionen erschienen

    LibreOffice-Wörterbücher und LanguageTool in neuen Versionen erschienen: Kurz vor Beginn des neuen Jahres wurden die deutschen Wörterbücher für LibreOffice aktualisiert. Auch das als LibreOffice-Plugin laufende...
  3. Plattdeutsches Wörterbuch für LibreOffice verfügbar

    Plattdeutsches Wörterbuch für LibreOffice verfügbar: The Document Foundation und der Verein De Plattdüütschen e.V. haben die erste Version des gemeinschaftlich entwickelten Standardwörterbuchs für...
  4. Remote Desktop und Wörterbuch

    Remote Desktop und Wörterbuch: Hallo, Ich hoffe in diesem Forum kann mir einer helfen. Ich suche ein Wörterbuch mit offline Wörterbüchern Deutsch - Englisch erstmal, mehrere...
  5. OpenThesaurus erreicht 100.000 Wörter

    OpenThesaurus erreicht 100.000 Wörter: Das freie Synonymwörterbuch OpenThesaurus umfasst nun über 100.000 Wörter. Weiterlesen...