Text löschen

Diskutiere das Thema Text löschen im Forum Scripting und Automatisierung.

  1. macwoif

    macwoif Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    11.12.2003
    Guten Abend!

    Ich habe ein ansich einfaches Problem, komme jedoch auf keine (funktionierende) Lösung:

    * ich will eine Textdatei zeilenweise durchsuchen
    * wenn ein bestimmtes Wort nicht vorkommt soll die Zeile gelöscht werden

    Wie könnte ich das möglichst einfach lösen?

    Danke,
    macwoif
     
  2. w2lab

    w2lab Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    Mitglied seit:
    21.02.2006
    set eingabe to "'/pfad/eingabe.txt'"
    set temp to "'/pfad/temp.txt'"
    do shell script "more " & eingabe &" | grep -v bestimmtesWort > " & temp &";mv " & temp & " " & eingabe
    -- grep -v, --invert-match
    -- für "/pfad/"-Angabe, Datei in Skripteditor ziehen
     
  3. macwoif

    macwoif Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    11.12.2003
    Danke für deinen Tip - leider bekomm ich das nicht zum laufen:
    fehlermeldung sh: -c line 1: unexpected EOF while looking for matching
    und sh: -c: line 2: syntax error: unexpected eof

    leider blick ich bei den terminal-befehlen nicht so ganz durch, kennt jemand eine lösung mit applescript direkt? hab da zwar schon ansätze, aber es löscht nicht wie gewünscht.

    macwoif
     
  4. chebfarid

    chebfarid Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Ciao macwolf,
    ein Ansatz mit reinen AS-Mitteln ist der folgende:
    -------------------------
    [This script was automatically tagged for color coded syntax by Convert Script to Markup Code

    Statt den zu bearbeitenden Text zu "hardcoden" kannst Du ihn natürlich auch aus einem File in die Variabile "myText" einlesen.

    Frohes scripten
    Farid
     
  5. macwoif

    macwoif Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    11.12.2003
    hallo!

    genau das wäre auch mein ansatz gewesen! in der betreffenden .txt ändert sich jedoch bei einem durchlauf nichts.
    Skript ist bei jetzt wie folgt:

    set theWord to "Unknown application"
    set nutzer to do shell script "whoami"
    set pfad to ":Users:" & nutzer & ":Desktop:originaldatei.txt" as string
    set myText to open for access file pfad with write permission
    set newText to ""
    set countP to count of paragraphs of myText
    repeat with i from 1 to countP
    set thisPar to paragraph i of myText
    if theWord is in thisPar then
    write newText & return to thisPar in myText
    end if
    end repeat

    close access myText

    gelöscht wird aber nicht !?!?!!?!
    das problem ist ja eigentlich wirklich simpel - aber es funktioniert einfach nicht: "wenn zeile der datei bestimmtes wort enthällt->lösche die Zeile"

    macwoif
     
  6. chebfarid

    chebfarid Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Ciao macwolf,
    vielleicht liegt das Problem darin, dass Du sofort in den gleichen Textfile schreiben willst, aus dem der Originaltext stammt. Ich glaube es ist besser, den korrekten Text in die Variabile newText zu schreiben und erst am Ende den neuen Textfile zu erstellen.

    Zweites Problem: read/write sind "Finder"-Kommandos - Du musst diese Scriptbefehle in einen Finder-"Tell"-block packen.

    Drittes Problem: Du musst den Originalfile nicht nur oeffnen, sondern auch seinen Inhalt in myText einlesen:
    Code:
    set startFile to (open for access file pfad with write permission)
    set myText to read startFile
    ...
    Am Ende Deines repeat loops kannst Du dann den neuen Text in "startFile" (oder in einen ganz neuen File) schreiben:
    Code:
    write newText to startFile
    close access startFile
    Hab' jetzt leider keine Zeit, kann das ganze heute abend mal kontrollieren.

    Frohes schaffen
    Farid
     
  7. chebfarid

    chebfarid Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Ciao macwolf,
    vergiss, was ich über das Kommando read/write und den Finder geschrieben habe: war Stuss :p

    So geht's jedenfalls ("origFile" und "newFile" mußt Du mit Deinen Pfaden updaten):
    Frohes schaffen
    Farid
     
  8. macwoif

    macwoif Thread Starter Mitglied

    Beiträge:
    38
    Zustimmungen:
    0
    Mitglied seit:
    11.12.2003
    Vielen Dank für deine Mühe Farid,

    es funktioniert jetzt genau so wie gewünscht!

    Milan / Maldini-Fan?

    gruß und dank
    macwoif
     
  9. chebfarid

    chebfarid Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Mitglied seit:
    05.10.2005
    Wohnortbedingt seit 15 Jahren - mit meiner Jugendliebe aus Köln ist ja in der BL und international kein Staat mehr zu machen ;)

    Saluti
    Farid
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Text in mehrere Dateien aufteilen Scripting und Automatisierung 05.05.2019
Automator Text vorlesen lassen Scripting und Automatisierung 08.01.2019
Bash Scripting: Auslesen einer einfachen text Datei Scripting und Automatisierung 10.04.2018
Text vor und nach Zeichen vertauschen Scripting und Automatisierung 19.03.2017
Text-Segmentierung mit Automator Scripting und Automatisierung 30.01.2017
Text markieren dann telefonieren ... Scripting und Automatisierung 12.12.2016
Automator (Text aus externem Programm löschen, kopieren Scripting und Automatisierung 25.11.2016
BBEdit Text links von 'selection' löschen Scripting und Automatisierung 28.11.2005
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite weitersurfst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...