Automatisieren Sie die Bearbeitung von Dateitexten

3

Ich habe eine Online-Website, auf die ich zu einer neuen URL wechseln möchte. Daher muss ich alle HTML-Dateien der Website (über 100 Dateien) bearbeiten, um die URL-Links in jeder Datei dieser Website zu aktualisieren.

Ich denke darüber nach, eine Offline-Kopie der Website-Dateien zum Bearbeiten zu erstellen.

Ist es möglich, Automator OS X zu verwenden? - Öffnen Sie jede Datei im Website-Dateiordner - Suchen Sie im Dateiinhalt nach einem bestimmten URL-Link (sagen Sie "www.website.com") und ändern Sie ihn in die neue URL (sagen Sie "www.website.com/old")?

Muss ich mich ansonsten auf einen Texteditor + Automator verlassen, um diesen Prozess durchzuführen?

Oder können Sie ein UNIX-Skript verwenden, das Sie im Terminal ausführen?

Vielen Dank für alle Ratschläge zur Durchführung dieses Vorgangs!

Paolo Bartoli
quelle
Sie können verwenden sed im Terminal, aber für eine bestimmte Antwort benötigen wir einen Auszug aus einer der Webseiten mit der alten und der neuen URL.
nohillside
Ich habe vor einiger Zeit etwas Ähnliches gemacht, habe es aber in BBEdit gemacht, da es mehrere Dateien finden / ersetzen kann. Falls Sie an kommerziellen ($) Optionen interessiert sind.
Steve Chambers
Hat Ihnen eine der folgenden Lösungen geholfen?
ʀ2ᴅ2

Antworten:

3

Angenommen, alle Dateien befinden sich im selben Ordner:

mkdir new
for i in *.html; do
    sed 's|website.com|website.com/old|g' "$i" > "new/$i"
done
nohillside
quelle
2

Wenn Sie häufig Inhalte von Websitedateien bearbeiten, sollten Sie in einen Editor investieren.

Erhabener Text 2

Legen Sie die Website auf dem Symbol ab und es wird das Projekt erstellt:

enter image description here

Lauf cmd Verschiebung F und geben Sie die Ersetzung ein:

enter image description here

Drücke den Replace Taste und überprüfen Sie die Replace:

enter image description here

Es werden alle Dateien geöffnet und geändert:

enter image description here


BBEdit

Ist eine ausgezeichnete und robuste Anwendung, mit der ich hauptsächlich Code bearbeite. Ziehen Sie den Ordner per Drag & Drop auf BBEdit und gehen Sie zu File -> Save Project und es wird eine Datei mit dem Namen erstellt foobar.bbprojectd:

enter image description here

Lauf cmd Verschiebung F und wählen Sie das Projekt mit den Ersetzungsparametern aus:

enter image description here

Nach dem Klicken werden Sie dazu aufgefordert Replace All:

enter image description here

Wenn Sie sich bei Ihren Änderungen nicht sicher sind, wählen Sie Leave Open denn wenn du wählst Save to disk es ist sehr schwer, zurück zu kehren.


Perl

Es gibt schon eine sed Lösung, aber Sie könnten das gleiche auch mit Perl tun:

# !/bin/bash

DIR="/Users/vader/desktop/test"
NEW="$DIR/new"

if [ ! -e "$DIR/new" ]; then 
    mkdir -p new
    echo "made folder new"
else
    echo "folder exists"
fi

for htmlfile in $(ls "$DIR"/*.html); do
    TEMPFILE="$htmlfile.$$"
    htmlbase=$(basename $htmlfile)
    echo "Working on "$htmlbase
    perl -pe 's|www.website.com|www.website.com\/old|g' "$htmlfile" > $TEMPFILE && mv $TEMPFILE "$NEW/$htmlbase"
done

Es gibt noch andere Editoren, aber das sind die beiden, die ich hauptsächlich benutze. Sie könnten dies auch in reinem AppleScript tun, aber Sie haben keinen Code gezeigt und das Terminal erwähnt, also habe ich das oben in Perl gemacht.

ʀ2ᴅ2
quelle