Ich habe eine Menge CSS-Dateien in einem Ordner und möchte in der Lage sein, in all diesen Dateien in einem Durchgang über die Befehlszeile unterschiedliche Werte zu suchen und zu ersetzen.
Wenn ich beispielsweise die Farbe #dadce4 durch #ececec ersetzen möchte, kann dies problemlos mit einem einzigen Befehl erledigt werden?
Nur um das klarzustellen: Ich suche nach etwas, das Änderungen an allen Dateien innerhalb eines Verzeichnisses und aller Unterverzeichnisse vornimmt, ohne einen Dateinamen angeben zu müssen.
Antwort1
Sie können sed verwenden, um Textbeispiel zu suchen und zu ersetzen:
sed -i 's/dadce4/ececec/g' file.css
Das g
am Ende bedeutet, dass alle Farben in der Datei ersetzt werden, nicht nur das erste Vorkommen.
Antwort2
Führen Sie den folgenden Befehl aus, um das gewünschte Ergebnis zu erzielen.
awk '{gsub("dadce4","ececec”,$0);print $0}' filename >>output file