免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4993 | 回复: 10
打印 上一主题 下一主题

请教如何用perl清空一个文档的内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-08 15:33 |只看该作者 |倒序浏览
RT

论坛徽章:
0
2 [报告]
发表于 2010-12-08 15:35 |只看该作者
回复 1# li_000828

打印空内容到这个文件?

open(FS,">/home/ufile")
    print FS "";

论坛徽章:
0
3 [报告]
发表于 2010-12-08 15:41 |只看该作者
回复  li_000828

打印空内容到这个文件?

open(FS,">/home/ufile")
    print FS "";
wtuter 发表于 2010-12-08 15:35



    第二句是多余的。
">"模式打开后就清空了,记得close.

论坛徽章:
0
4 [报告]
发表于 2010-12-08 15:42 |只看该作者
上面方法可以清空文件,我现在有这么一个情况。
先打开文件,然后进行,匹配过滤,最后再清空它。

我试了下面这个方法,但是不行:
open F,"+< file";
while(<F>){
  .............
}
print F "";

论坛徽章:
0
5 [报告]
发表于 2010-12-08 16:08 |只看该作者
回复 4# li_000828


    你这个方法应该不行,因为文件指针已经移动到文件的结尾了,你再 print "". 不会做清空操作的。
   简单的方法就在你做完操作后close掉,然后用上上面的 ">" 的方法open一下再关掉,就清空了。如果想一次做完的话,我想你应该用seek(FH,0.0)把文件指针移到文件头,然后truncate(FH,0). 最后关掉。 这样明显复杂了些

论坛徽章:
0
6 [报告]
发表于 2010-12-08 16:27 |只看该作者
回复 5# climby


open F,"< file";
while(<F>){
  .............
}
open F,"> file";
close(F);


我这样可以吗?

论坛徽章:
0
7 [报告]
发表于 2010-12-08 16:46 |只看该作者
回复 6# li_000828


    怎么不COPY先呢,当然这样是可以清空文件的。

论坛徽章:
0
8 [报告]
发表于 2010-12-08 17:17 |只看该作者
回复 6# li_000828


    对,你这样做应该是可以的

论坛徽章:
0
9 [报告]
发表于 2010-12-08 17:25 |只看该作者
回复 8# climby


    多谢指点!

论坛徽章:
0
10 [报告]
发表于 2010-12-09 15:06 |只看该作者
`>$file`;
能用shell简单处理就用shell吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP