Gibt es eine einfache Möglichkeit, eine Zeile in vielen Dateien zu ändern?

Gibt es eine einfache Möglichkeit, eine Zeile in vielen Dateien zu ändern?

Ich versuche, PHP CodeSniffer zu verwenden, und hier ist das Ergebnis:

-----------------------------------------------------------------
A TOTAL OF 3008 ERROR(S) AND 380 WARNING(S) WERE FOUND IN 46 FILE(S)
-----------------------------------------------------------------

Es gibt viele kleine Änderungen in einer Zeile (z. B. „Ändern @author Olivier Ponsin “), die ich über ein Shell-Skript oder noch besser über eine Befehlszeile und (wenn möglich) unter Verwendung regulärer Ausdrücke vornehmen möchte.@author Olivier Pons <[email protected]>

Haben Sie eine Idee/einen Vorschlag/eine funktionierende Lösung für dieses Problem?

Danke schön!

(Anmerkung: Ich habe bereits gelesenDasaber es hat mir nicht geholfen)

Antwort1

Ich bin mir nicht sicher, was Ihnen an dem von Ihnen angegebenen Link nicht geholfen hat, aber es sedscheint das richtige Tool dafür zu sein. Es unterstützt das Ersetzen regulärer Ausdrücke und wenn Sie es übergeben, -iwerden Dateien direkt geändert:

$ sed -i 's/@author Olivier Pons/& <[email protected]>/g' /path/to/your/file /path/to/another/file ...

(Das &in der Ersetzung ist eine Abkürzung, die „die gesamte Übereinstimmung einschließen“ bedeutet.)

Antwort2

Ich denke, Sie könnten sed verwenden.

Zum Beispiel.

sed -i "s/@author Olivier Pons/@author Olivier Pons <[email protected]>/g" `grep "@author Olivier Pons" -rl YOUR_FILE_DIR`

verwandte Informationen