首页 > 解决方案 > 在“perl -n”单线中的下一个文件上重置状态变量

问题描述

我正在处理多个文件,find ... | xargs perl -ne当我继续处理下一个文件时,我需要像这样gawk 'BEGINFILE {}'做一样重置一些变量。

作为一种解决方法,我检查当前文件名是否已更改。有没有更清洁的方法?

if ($oldARGV ne $ARGV) { $oldARGV = $ARGV; $var1=""; ... } ... 

标签: perl

解决方案


不带参数使用eof(或带eof ARGV):

$ perl -nE 'say "Done with file $ARGV" if eof' *.txt
Done with file a.txt
Done with file b.txt

推荐阅读