我编写了一个简单的ksh,它调用Perl程序来查找和替换文件。 传入的arg是主目录:

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

效果很好。但是,我想将所有更改输出到日志文件。我已经尝试过管道和重定向,但却无法使其正常工作。有什么想法吗?

谢谢, 格伦

有帮助吗?

解决方案

像这样将所有更改发送到STDERR:

perl -pi -e '$old = 

像这样将所有更改发送到STDERR:

<*>

更新:修正了$。在多个文件上。

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

像这样将所有更改发送到STDERR:

<*>

更新:修正了$。在多个文件上。

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

更新:修正了$。在多个文件上。

其他提示

您可以打印到STDERR并将STDERR输出重定向到文件,如下所示:

perl -pi -e 'chomp($prev=

您可以打印到STDERR并将STDERR输出重定向到文件,如下所示:

<*>

编辑:添加文件名,并在使用多个输入文件时显示固定行号

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

您可以打印到STDERR并将STDERR输出重定向到文件,如下所示:

<*>

编辑:添加文件名,并在使用多个输入文件时显示固定行号

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

编辑:添加文件名,并在使用多个输入文件时显示固定行号

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top