首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在perl一行程序中返回到文件的开头?

如何在perl一行程序中返回到文件的开头?
EN

Stack Overflow用户
提问于 2018-10-10 05:44:45
回答 1查看 281关注 0票数 2

在遍历文件一次之后,我想返回到文件的开头,并删除基于原始遍历文件的条目,但我不知道如何返回到文件的开头。我有一行程序的输入文件名,但没有文件句柄。我需要有文件句柄吗?如何从文件名中获取它?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-10 07:48:13

文件句柄为ARGV。虽然-i可能会提出关于寻找的问题,但它在我的测试中是有效的

代码语言:javascript
复制
perl -i.bak -pe'
    $_ = "line: $_"; 
    if ($. == 2) { seek ARGV, 0, 0 }
' test.txt

如果您发现-i或备份(我没有)出现问题,请手动执行此操作。

使用-p switch时,每次都会打印$_。注释中的代码使用了它,但这个问题似乎暗示不是每一行都需要打印,因为它想从开头“删除条目”。如果是这样,那么使用-n而不是-p,后者也会打开文件并迭代其行,但不打印。然后根据需要添加打印语句。

阅读I/O Operators in perlop通常是一个非常好的主意,一旦你对此胡乱摆弄,我真的会推荐它。

似乎有更好的方法来解决你的问题,但我们需要更多的细节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52729767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档