Inhalt mehrerer HTML-Dokumente ändern

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von Schlawiner, 24.01.2007.

  1. Schlawiner

    Schlawiner Thread Starter MacUser Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    MacUser seit:
    09.12.2006
    Hallo, ich hoffe, dass ich im richtigen Forum bin.

    Ich habe einige HTML-Dokumente, bei denen ich identischen Inhalt ändern möchte (in diesem Fall die URL zu einem Link).

    Ich hatte mal Dreamweaver ausprobiert, wo man das super einfach machen konnte.
    Nun habe ich aber keinen Dreamweaver und suche eine Alternative.

    Quasi ein Suchen&Ersetzen über mehrere Dokumente hinweg.

    Ich habe keine Ahnung ob und v. a. wie das mit Automator funktionieren könnte. Oder ob es mit einem anderen Freeware-Tool funktioniert.

    Über hilfreiche Tipps wäre ich sehr dankbar!
     
  2. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Das folgende Script funktioniert mit BBEdit (ich nehme an, auch mit seinem kleinen Bruder "TextWrangler") - einfach den Ordner auswählen, der die zu bearbeitenden Files enthält:
    PHP:
    tell application "Finder" 
         
    activate 
         set f to 
    (choose folder) as alias 
         set theFiles to every item of f 
         set c to count of theFiles 
          
         display dialog 
    "Inserisci il testo da trovare/sostituire:" default answer "" with icon 1 
         set searchstring to text returned of the result 
          
         display dialog 
    "Inserisci il testo di sostituzione:" default answer "" with icon 1 
         set replacestring to text returned of the result 
          
         repeat with i from 1 to c 
              set myFile to item i of theFiles 
    as alias 
              tell application 
    "BBEdit" 
                   
    activate 
                   open myFile 
                   tell window 1 of application 
    "BBEdit" 
                        
    replace searchstring using replacestring 
                   end tell 
                   close window 1 saving yes 
              end tell 
         end repeat 
    end tell
    Frohes Scripten
    Farid
     
  3. Schlawiner

    Schlawiner Thread Starter MacUser Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    MacUser seit:
    09.12.2006
    Danke.
    Ich kenne mich mit AppleScript leider kaum aus.
    Hab dein Script mal ausprobiert, er meckert aber in der Zeile
    "replace searchstring using replacestring"
    immer "Es wurde „Zeilenende“ erwartet, aber ein „Identifier“ wurde gefunden."
     
  4. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    :confused: Hm...
    Vieleicht sind beim kopieren/einfügen die Zeilenenden verwackelt. Probier's nochmal hiermit:
    PHP:
    tell application "Finder"
        
    activate
        set f to 
    (choose folder) as alias
        set theFiles to every item of f
        set c to count of theFiles
        
        display dialog 
    "Bitte den Suchtext eingeben:" default answer "" with icon 1
        set searchstring to text returned of the result
        
        display dialog 
    "Bitten den Substitutionstext eingeben:" default answer "" with icon 1
        set replacestring to text returned of the result
        
        repeat with i from 1 to c
            set myFile to item i of theFiles 
    as alias
            tell application 
    "BBEdit"
                
    activate
                open myFile
                tell window 1 of application 
    "BBEdit"
                    
    replace searchstring using replacestring
                end tell
                close window 1 saving yes
            end tell
        end repeat
    end tell
    PS: Ich gehe davon aus, daß Du BBEdit installiert hast, sonst kann das Script nicht funktionieren...

    Frohes schaffen
    Farid
     
  5. Schlawiner

    Schlawiner Thread Starter MacUser Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    MacUser seit:
    09.12.2006
    Nee, okay, ich hatte BBEdit durch Taco HTML Edit ersetzt, mit der Hoffnung, mit dem klappte das auch. Aber dann wohl nicht. :(
    Trotzdem danke.

    Hat sonst noch jemand ne Idee?
     
  6. iridium

    iridium MacUser Mitglied

    Beiträge:
    33
    Zustimmungen:
    1
    MacUser seit:
    11.05.2003
    Ich empfehle Textmate…*

    Allerdings kann auch Textwrangler bei kompletten Projekten eine Suchen & Ersetzen Aktion durchführen. sollte mich wundern, wenn BBEdit es nicht hätte.

    Bei Textmate einfach den kompletten Ordner mit den betreffenden HTML-files öffnen und schon gehts los…*Alles kein Problem… So oder so.

    Bei Textwrangler geht es ähnlich zu…*(hatte es schon lange nicht mehr benutzt…)

    Cheers,
    Martin
     
  7. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    Der Befehl
    Code:
    replace searchstring using replacestring
    bezieht sich auf das AppleScript Dictionary fuer BBEdit. Wenn Du stattdessen ein anderes Programm scripten willst musst Du ueberpruefen, ob es einen aehnlichen Befehl fuer diese Anwendung gibt und die entsprechende Syntax verwenden. Da Textwrangler aus der gleichen Softwarefirma kommt wie BBEdit, gehe ich davon aus (ohne es aus erster Hand zu wissen), dass die AppleScript-Kommandos fuer beide Programme identisch sind.
    Probieren geht ueber studieren ;)
    Farid
     
  8. Schlawiner

    Schlawiner Thread Starter MacUser Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    MacUser seit:
    09.12.2006
    Okay, ich hab mir jetzt mal TextWrangler geladen (die anderen sind ja alle kostenpflichtig) und das Skript gestartet.

    Soweit klappt es wunderbar (danke!), nur erscheint dann folgende Fehlermeldung:

    Kann mir einer sagen, was das heißt?
    Die Dateien liegen in meinem Home-Verzeichnis und sind nicht schreibgeschützt.
     
  9. Schlawiner

    Schlawiner Thread Starter MacUser Mitglied

    Beiträge:
    27
    Zustimmungen:
    0
    MacUser seit:
    09.12.2006
    Ah, ich glaube, er hängt bei der ersten Datei, die kein HTML-Dokument, sondern ein Bild ist.
    Kann ich das Skript auf Textdokumente beschränken? Wenn ja, an welcher Stelle?
     
  10. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    MacUser seit:
    05.10.2005
    z.B. so:
    PHP:
    repeat with i from 1 to c 
            set myFile to item i of theFiles 
    as alias
            
    if kind of myFile is "HTML document" then
            tell application 
    "BBEdit" 
                
    activate 
                open myFile 
                tell window 1 of application 
    "BBEdit" 
                    
    replace searchstring using replacestring 
                end tell 
                close window 1 saving yes 
            end tell 
            end 
    if
    end repeat 
    Frohes scripten
    Farid
     

Diese Seite empfehlen