Chinaunix

标题: 求教系统维护的高手们 [打印本页]

作者: Tonyish    时间: 2014-01-07 13:55
标题: 求教系统维护的高手们
用perl怎么直接去修改文件上的数据 :例如(都是知道行数的情况下)要改第10行上的?
作者: zhlong8    时间: 2014-01-07 14:23
先把任务完成,遇到瓶颈了再考虑性能问题。你可以自己写个不过都是O(N)的,用 Tie::File 可能省点事
作者: kiwivip    时间: 2014-01-07 14:24
parser() if $. == 10 ;
作者: jason680    时间: 2014-01-07 14:28
回复 1# Tonyish

simple example:

$ seq 3 | perl -lape '$_.=" here" if $.==2'
1
2 here
3

   
作者: Tonyish    时间: 2014-01-07 14:45
谢谢各位了,我先看看Tie::File 的知识
作者: yestreenstars    时间: 2014-01-07 15:08
单行脚本:
  1. perl -i -pe 's/.*/test/ if $.==10'
复制代码
多行脚本:
  1. $^I = "";
  2. while (<>) {
  3.         s/.*/test/ if $. == 10;
  4.         print;
  5. }
复制代码

作者: Tonyish    时间: 2014-01-07 15:16
用Tie:File修改文件时,需要锁定文件吗?因为可以有多个进程在访问、增加数据什么的?
回复 2# zhlong8


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2