浏览完一个文件之后,我想回到文件的开头,并根据我对文件的原始传递来删除条目,但是我不知道如何回到文件的开头。我将输入文件的名称命名为单行,但没有文件句柄。我需要文件句柄吗?如何从文件名中获取它?
谢谢。
答案 0 :(得分:1)
文件句柄为ARGV。尽管-i
可能会提出有关搜索的问题,但在我的测试中仍然有效
perl -i.bak -pe'
$_ = "line: $_";
if ($. == 2) { seek ARGV, 0, 0 }
' test.txt
如果您发现-i
有问题,或者备份(我没有)在没有问题的情况下运行,请手动进行。
使用-p
switch时,每次打印$_
。注释中显示的代码使用了它,但问题似乎暗示并非每行都需要打印,因为它想从一开始就“ 删除条目”。如果是这种情况,请使用-n
而不是-p
,它还会打开文件并遍历其行,但不会打印。然后根据需要添加打印语句。
阅读I/O Operators in perlop通常是一个非常好的主意,一旦您对此感到困惑,我会真的推荐它。
看来您的问题可能有更好的解决方法,但我们需要更多详细信息。