当前位置:  技术问答>linux和unix

如何能够更新文件中的指定字符串??

    来源: 互联网  发布时间:2016-06-04

    本文导语:  我现在用sar命令输出Linux服务器中的机器信息,包括cpu和内存信息等等,然后将获取的信息输出到指定的文件中,由于要定时更新此文件中的信息,但又不想由于不断插入数据导致此文件过大,希望能够通过某些命令...

我现在用sar命令输出Linux服务器中的机器信息,包括cpu和内存信息等等,然后将获取的信息输出到指定的文件中,由于要定时更新此文件中的信息,但又不想由于不断插入数据导致此文件过大,希望能够通过某些命令直接更新此文件中的某些行内的字符串数据即可,如何能做到呢??

例如文件信息如下:
idle:88
system:10

我想要只更新idle后面的数据即可,如何做到呢??或者在">>***.txt"的时候能否直接覆盖原有数据,而不是在原有内容下方插入呢??

|
用fputs函数即可实现在文件的某个地方插入信息;不过一定要考虑插入的信息可能会覆盖后面的内容。
    pos = findoption(fp, 120, aOpLine);
    if ( -1 != pos )
    {
        //把文件指针指向文件头
        fseek(fp, 0, SEEK_SET);

        //获取option name
        getoption(aOpLine, 1, aTemp);
        memcpy(acName, aTemp, 16);

        //获取option flag
        getoption(aOpLine, 2, aTemp);
        cFlag = atol(aTemp);

        //获取option code
        getoption(aOpLine, 3, aTemp);
        iCode = atol(aTemp);  

        memset(aOpLine, 0, sizeof(aOpLine));        
        sprintf(aOpLine, "%s#%4d#%dn", acName, 120, iCode);

//把文件指针指向要写的行
        fseek(fp, pos, SEEK_SET);
        
        fputs(aOpLine, fp);
    }

|
sed -ri "s/^(idle: ).*$/1$(sar | tail -n1 | awk '{print $NF}')/" URFILE

其中:
(idle: ).*是以你提供的例子设定的,表示URFILE中idle一行的格式,可参考实际情况修改;
$(sar | tail -n1 | awk '{print $NF}')是随便用了一个average idle值,可根据你的取值修改,如果已经有现成的变量idle_value,直接将这部分修改为$idle_value即可。

|
如果
idle:88 是独立的一行,应该可以用sed来替换:
value=99
sed "s/^idle.*$/idle:$value/g" xxx.txt>yyy.txt
cp yyy.txt xxx.txt

不过没试过$value能不能输出。

|
sed 命令可以做,楼上正解

|
lz 需要的是 

command >xxx.txt

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 写一个tail程序,能够打印出命令行指定的文件的最后十行,
  • xmkmf,在自动生成Makefile的时候,能不能够指定用gcc编译?请大虾解决
  • 高分请教,如何能够使GTK能够在gtk生成的窗口里面放一个其它程序的窗口?
  • 大家好,我有一586 32m内存的计算机希望能够利用,不必图形界面但需要通过局域网上Internet接收数据,能够安全稳定占用较少的资源。
  • 由于现在要完成一个实时系统的时间驱动,哪儿能够下载到电子版 情景分析
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 在服务器端,能够获得用户IE的如下的一些设置吗?
  • 哪位能够帮我推荐几本考SCJP的教材......
  • 如何使JtextArea中能够显示中文信息?来者有分
  • 哪里能够下载到针对InterBase的第三类的JDBC驱动程序InterClient?高分求解......
  • 请问:能够在网页文件中自己定义出现在地址栏中的url吗?
  • SQL2000能不能够象Access2000那样自动编号?(用触发器行不行?如何做?)
  • 请问使用或安装什么软件能够实现Win2000下访问Linux分区?
  • 要做一个表格,要求是能够定时刷新其中的内容.(急急急急!)
  • Java能够设置Graphics2D的DrawString的字体的粗细吗?不是指字体大小!
  • 有哪位仁兄能够提供一些Tuxedo方面的资料,不胜感激
  • JAVA Applet能够读写文件吗?
  • 如何能够只打印,页面上的表格,页面上的上一页,下一页,还有按钮不打印
  • 哪位大侠能够推荐一下处理jpeg文件的程序,最好有源代码!!
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • 用什么函数能够发送定长IP包?
  • 我安装了Winamp for Linux,可是在哪里能够找到它.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3