Domanda

Ho scritto un semplice ksh che chiama un programma Perl per trovare e sostituire nei file. L'arg passato è la directory home:

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

Funziona benissimo. Tuttavia, vorrei inviare tutte le modifiche a un file di registro. Ho provato a eseguire il piping e il reindirizzamento e non sono riuscito a farlo funzionare. Qualche idea?

Grazie, Glenn

È stato utile?

Soluzione

Qualcosa del genere per inviare tutte le modifiche a STDERR:

perl -pi -e '$old = 

Qualcosa del genere per inviare tutte le modifiche a STDERR:

<*>

Aggiornato: fisso $. su più file.

; s/find/replace/g and warn "${ARGV}[$.]: $old

Qualcosa del genere per inviare tutte le modifiche a STDERR:

<*>

Aggiornato: fisso $. su più file.

"; close ARGV if eof' $1/*.html

Aggiornato: fisso $. su più file.

Altri suggerimenti

Puoi stampare su STDERR e reindirizzare solo l'output STDERR su un file come di seguito:

perl -pi -e 'chomp($prev=

Puoi stampare su STDERR e reindirizzare solo l'output STDERR su un file come di seguito:

<*>

modifica: aggiunto il nome del file e la visualizzazione del numero di linea fissa quando vengono utilizzati più file di input

);s/find/replace/g and print STDERR "$ARGV - $.: $prev ->

Puoi stampare su STDERR e reindirizzare solo l'output STDERR su un file come di seguito:

<*>

modifica: aggiunto il nome del file e la visualizzazione del numero di linea fissa quando vengono utilizzati più file di input

"; close ARGV if eof' $1/*.html 2> logfile.txt

modifica: aggiunto il nome del file e la visualizzazione del numero di linea fissa quando vengono utilizzati più file di input

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top