免费注册 查看新帖 |

Chinaunix

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

这个文件句柄"+>"怎么用? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-09 20:49 |只看该作者 |倒序浏览
有个小脚本需要对同一个文件读出老值写入新值,后来看到有 +> 这个方法。
不过试验了一下用不出来,不知道大家没有用过的。指点一二。
  1. [root@localhost readfile]# echo "abcd" >./test
  2. [root@localhost readfile]# perl -le 'open FH,"<","./test"; print <FH>;'
  3. abcd

  4. [root@localhost readfile]# perl -le 'open FH,"+<","./test"; print <FH>;'
  5. abcd

  6. [root@localhost readfile]# perl -le 'open FH,"+>","./test"; print <FH>;'

复制代码

论坛徽章:
0
2 [报告]
发表于 2011-04-10 10:39 |只看该作者
看看perldoc -f open

论坛徽章:
0
3 [报告]
发表于 2011-04-11 00:11 |只看该作者
多谢仙子姐提醒,在这之前我也看了些文档才发帖提问的。

后来做了一下实验:

  1. [root@localhost readfile]# perl -le 'open FH,"+<./test"; print <FH>;'
  2. aaa

  3. [root@localhost readfile]# cat ./test
  4. aaa
  5. [root@localhost readfile]# perl -le 'open FH,"+>./test"; print <FH>;'

  6. [root@localhost readfile]# cat ./test
  7. [root@localhost readfile]#
复制代码
一直以为,以操作为准。
如果有读操作就把内容读出来,写的话再覆盖。如果没有做写的操作就保持原来状态。
没想到+>直接把原本内容清除掉,文档内容在一开始就破坏了,
还是close时候会把缓存里面的东西写会文件中, 上面都是猜测。。。。

-----------------------------------------------------------------------------------------------------

现在有个场景不知道用啥好,仙子姐提点一下:
写一个报表脚本,每5分钟取一次值和前一次值(放在文件中)对比,大的就把文件中的值覆盖掉。
每天会把这个目录里面的全部文件全部清楚,以便让第二天重新再来。

这个读写符号用在值的判断这里,如果大就覆盖,小就不变。如果文件没有就创建把当前值写入。
想用一个文件符搞定读写覆盖创建,看这个样子是不是要用几个才行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP