[Unix] shell脚本实现的修改文件中的字符串
来源:互联网 发布:mac finder里有网页 编辑:程序博客网 时间:2024/06/07 03:27
一个使用shell脚本实现的修改文件中的字符串
钱冰斌 发表于2009年11月06日 10:31 阅读(0) 评论(0) 分类: 转 来源:QQ邮箱
有两天没有寫自己的博客了,本来决定要每天坚持写,看来自己有时就是太懒了,总是会找借口不写了,今天很累明天再写吧,结果明天也没写,明天我一定写两篇,可是最后一篇都没写。也许这就是人之所以的人之惰性吧,我天生可能就是有一种惰性,很多事情都不是太会去主动做,这是不好而且可能是致命的缺点,所以决定了还是应该尽量去克服这个缺点,当然如果中间我确实有几天没写,如果不小心耽误了您搜索代码,对不起了,您可千万不要用砖头来拍我,因为现在的砖头不结实,拍死还好,拍不死可就傻了,那时郁闷也无奈了,呵呵。
言规正传昨天公司的mary请我帮忙想一下如何去修改一个再linux下的XML文档,如果使用c语言,那当然可以了使用一个对搜索位置的函数通过指针传递来实现,这个恐怕要好好的想一想,自己的c语言也不是那么的好了,对内存操作n年了总是不能很好的解决,无奈之下女生求助,是绅士的总是要帮一把了您说对吧,所以没有办法了只要去试试看了,我打算使用shell脚本去实现。
通过搜集一些资料和自己先前对一些shell脚本的编写,我突然想到来对XML文件进行读取,然后根据cut指令获找到想要的替换,然后之行vi指令中的字符串处理命令来实现。这个方法肯定行了。现在我就把代码贴出来,共享一直是我追求的理念。共享共享。
#!/bin/sh
DIR="tvdevicedesc.xml"
CONF_DIR1="upnp_name.conf"
#cat ${CONF_DIR}
var=`cat ${DIR} | grep "<friendlyName>"`
temp=`echo $var | cut -f2 -d' '`
tt=`echo $temp | cut -f2 -d'>' | tr -d "</friendlyName>"`
echo $tt
temp2=`cat ${CONF_DIR1}`
echo $temp2
vi ${DIR} <<-!
:g/$temp/s//$temp2/g
:wq
!
这就是我写点代码了,这个脚本代码多了一些无用的东西,因为我是要再脚本中查看是不是修改了我需要修改的字符串了所以加入了前面的很多代码其实就三句就可以实现了。
vi ${DIR} <<-!
:g/$temp/s//$temp2/g
:wq
!
前面的都是用来对结果的显示的。当然这个shell是运行再linux下装有vim编辑工具的,如果没有这个工具那么我这个脚本就作废了,如果您看了请注意这个地方。
下面是一个写道公司削减内核下的linux的shell脚本,由于削减内核中内存的存贮有限一般的应用软件都没有装载所以我只好使用些常用的shell语言命令了,代码如下:
#!/bin/sh
DIR="tvdevicedesc.xml"
CONF_DIR1="upnp_name.conf"
#cat ${CONF_DIR}
var=`cat ${DIR} | grep "<friendlyName>"`
temp=`echo $var | cut -f2 -d' '`
tt=`echo $temp | cut -f2 -d'>' | tr -d "</friendlyName>"`
echo $tt
temp2=`cat ${CONF_DIR1}`
echo $temp2
sed 's/'$tt'/'$temp2'/g' tvdevicedesc.xml >tvdevicedesc.xml
这里使用到了sed指令,这个指令我从网上了解到好像是对流进行操作的,他的功能是比较强大的,有些参数我没有做过尝试,如果您做过了记得给我留言,燕过留声 ,人过留名嘛,先谢谢了。对于这个脚本我有点说明,可能是有于tvdevicedesc.xml 存在如果你想把修改后的在写入tvdevicedesc.xml 文件那么文件会变成空。但是如果写成别的文件名字那就没有问题。这个可能就是对数据流操作的先后顺序,因为我不是太明白,这只是我一点点的猜想,如果您知道什么原因我就不重复了 共享吧 呵呵
言规正传昨天公司的mary请我帮忙想一下如何去修改一个再linux下的XML文档,如果使用c语言,那当然可以了使用一个对搜索位置的函数通过指针传递来实现,这个恐怕要好好的想一想,自己的c语言也不是那么的好了,对内存操作n年了总是不能很好的解决,无奈之下女生求助,是绅士的总是要帮一把了您说对吧,所以没有办法了只要去试试看了,我打算使用shell脚本去实现。
通过搜集一些资料和自己先前对一些shell脚本的编写,我突然想到来对XML文件进行读取,然后根据cut指令获找到想要的替换,然后之行vi指令中的字符串处理命令来实现。这个方法肯定行了。现在我就把代码贴出来,共享一直是我追求的理念。共享共享。
#!/bin/sh
DIR="tvdevicedesc.xml"
CONF_DIR1="upnp_name.conf"
#cat ${CONF_DIR}
var=`cat ${DIR} | grep "<friendlyName>"`
temp=`echo $var | cut -f2 -d' '`
tt=`echo $temp | cut -f2 -d'>' | tr -d "</friendlyName>"`
echo $tt
temp2=`cat ${CONF_DIR1}`
echo $temp2
vi ${DIR} <<-!
:g/$temp/s//$temp2/g
:wq
!
这就是我写点代码了,这个脚本代码多了一些无用的东西,因为我是要再脚本中查看是不是修改了我需要修改的字符串了所以加入了前面的很多代码其实就三句就可以实现了。
vi ${DIR} <<-!
:g/$temp/s//$temp2/g
:wq
!
前面的都是用来对结果的显示的。当然这个shell是运行再linux下装有vim编辑工具的,如果没有这个工具那么我这个脚本就作废了,如果您看了请注意这个地方。
下面是一个写道公司削减内核下的linux的shell脚本,由于削减内核中内存的存贮有限一般的应用软件都没有装载所以我只好使用些常用的shell语言命令了,代码如下:
#!/bin/sh
DIR="tvdevicedesc.xml"
CONF_DIR1="upnp_name.conf"
#cat ${CONF_DIR}
var=`cat ${DIR} | grep "<friendlyName>"`
temp=`echo $var | cut -f2 -d' '`
tt=`echo $temp | cut -f2 -d'>' | tr -d "</friendlyName>"`
echo $tt
temp2=`cat ${CONF_DIR1}`
echo $temp2
sed 's/'$tt'/'$temp2'/g' tvdevicedesc.xml >tvdevicedesc.xml
这里使用到了sed指令,这个指令我从网上了解到好像是对流进行操作的,他的功能是比较强大的,有些参数我没有做过尝试,如果您做过了记得给我留言,燕过留声 ,人过留名嘛,先谢谢了。对于这个脚本我有点说明,可能是有于tvdevicedesc.xml 存在如果你想把修改后的在写入tvdevicedesc.xml 文件那么文件会变成空。但是如果写成别的文件名字那就没有问题。这个可能就是对数据流操作的先后顺序,因为我不是太明白,这只是我一点点的猜想,如果您知道什么原因我就不重复了 共享吧 呵呵
- [Unix] shell脚本实现的修改文件中的字符串
- 一个使用shell脚本实现的修改文件中的字符串
- SHELL脚本批量修改文件中的某一个字符串(不带矫正,不修改elf文件)
- 实用的shell脚本-------修改cfg文件
- shell脚本中修改文件的内容
- 通过shell脚本修改xml文件中的某行记录
- Linux/Unix实现自动ftp的shell脚本
- 1.shell脚本修改多台服务器上的某一个文件中的值。
- unix 的 bash shell 脚本
- shell 脚本实现的遍历目录修改子目录及其文件权限
- shell脚本实现图片文件的重命名
- shell脚本实现删除文件的源代码
- Shell脚本中的字符串测试
- shell脚本实现字符串截取
- shell脚本:修改包含特定内容的多个文件
- Linux的简单shell脚本中修改文件操作
- Linux的简单shell脚本中修改文件操作
- Linux的简单shell脚本中修改文件操作
- 简单图论-最小生成树—kruskal+prim
- 生活就是油盐酱醋(技巧品味)——值得看看
- [unix] dd参数详解
- (转)JAVA开发者最常去的20个英文网站
- Fundamental Solution to Pell's Equation
- [Unix] shell脚本实现的修改文件中的字符串
- 哈哈!女生必看!男士看看也不错!关于如何打扮自己呀!
- 2009年最后一个晚上
- C 语言入门指导
- Jexus web server v3.3版正式发布
- 终于在debian上搞定wafp
- 第1章 C#概述
- 女士化妆都的看看啊!呀!年青了10岁啊!
- 2010