Frage

Ich habe ein einfaches Skript KSH up, die ein Perl-Programm ruft Dateien zu suchen und ersetzen in. Die übergebene in arg ist das Home-Verzeichnis:

 perl -pi -e 's/find/replace/g' $1/*.html

Es funktioniert großartig. Allerdings würde ich alle Änderungen zur Ausgabe in eine Protokolldatei mögen. Ich habe versucht, Rohrleitungen und Umleiten und nicht in der Lage gewesen, um es Arbeit zu bekommen. Irgendwelche Ideen?

Danke, Glenn

War es hilfreich?

Lösung

So etwas wie dies alle Änderungen an STDERR an:

perl -pi -e '$old = $_; s/find/replace/g and warn "${ARGV}[$.]: $old $_"; close ARGV if eof' $1/*.html

Aktualisiert: Fest $. auf mehreren Dateien.

Andere Tipps

Sie können auf STDERR drucken und wie unten nur die STDERR Ausgabe in eine Datei umleiten:

perl -pi -e 'chomp($prev=$_);s/find/replace/g and print STDERR "$ARGV - $.: $prev -> $_"; close ARGV if eof' $1/*.html 2> logfile.txt

edit: hinzugefügt, um die Dateinamen und die Festnetznummer angezeigt, wenn mehrere Eingabedateien verwendet werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top