- 浏览: 490981 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (185)
- job (15)
- linux/windows/unix/bash/shell (31)
- JAVA/J2EE/spring/hibernate/struts (30)
- VC/C++ (48)
- mysql/postgresql (6)
- php/jsp/asp/pear (1)
- FMS/flex/openlaszlo/red5/openmeetings (34)
- apache/tomcat/ftp/svn (6)
- xen/vm/Hadoop/cloudcompute (6)
- visual studio/eclipse/zendstudi/ant (8)
- others (1)
- windows异常处理 __try __except (1)
- (1)
- matlab (4)
- android (0)
最新评论
-
hongzhounlfd:
很透彻,很详细
依赖注入和控制反转 -
jefferyqjy:
谢谢~言简意赅~很明了!
依赖注入和控制反转 -
elderbrother:
太好了,谢谢
依赖注入和控制反转 -
east_zyd_zhao:
终于搞明白了
依赖注入和控制反转 -
Dremeng:
完美,一看就懂理解透彻
依赖注入和控制反转
shell
如何读取一个文件的第一行记录???
head -1 urfile
sed 'q' urfile
awk '{print;exit}' urfile
有两天没有寫自己的博客了,本来决定要每天坚持写,看来自己有时就是太懒了,总是会找借口不写了,今天很累明天再写吧,结果明天也没写,明天我一定写两 篇,可是最后一篇都没写。也许这就是人之所以的人之惰性吧,我天生可能就是有一种惰性,很多事情都不是太会去主动做,这是不好而且可能是致命的缺点,所以 决定了还是应该尽量去克服这个缺点,当然如果中间我确实有几天没写,如果不小心耽误了您搜索代码,对不起了,您可千万不要用砖头来拍我,因为现在的砖头不 结实,拍死还好,拍不死可就傻了,那时郁闷也无奈了,呵呵。
言规正传昨天公司的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
文件那么文件会变成空。但是如果写成别的文件名字那就没有问题。这个可能就是对数据流操作的先后顺序,因为我不是太明白,这只是我一点点的猜想,如果您知
道什么原因我就不重复了 共享吧 呵呵
最近做一个数据迁移的项目,其中需要替换原来文本
中的一些东西,为了简便当然是写脚本
啦!
可是发现一个小问题,就是在出现$字符
(美元字符)和单引号连接的时候,无法用转移字符\+普通的sed
-i 's/old/new/g' file
name来替换
举个例子:
[root
@localhost ~]# touch test
[root@localhost ~]#vi test
写入'$aaa' 记住是单引号和$aaa哦
[root@localhost ~]# cat test
'$aaa'
[root@localhost ~]# sed -i 's/\'\$aaa\'/bbb/g' test
>
(提示
要我继续输入???看来是出错了)
[root@localhost ~]# sed -i "s/\'\$aaa\'/bbb/g" test
[root@localhost ~]# cat test
'$aaa'
(内容居然没变,后来经过隋老师大神的指导,终于发现以下方法可以一次性解决
问题)
[root@localhost ~]# sed -i.bak -r "s/[[:punct:]]+aaa[[:punct:]]/bbb/g" test
bbb
[root@localhost ~]# cat test
bbb
我擦,成功了,信老师得成功
当然,还有另一种解决办法,就是替换两次(这可是本人想到的哦)
这个方法大家应该都会就是先
sed -i 's/\$//g' test
再
sed -i "s/\'aaa\'/bbb/g" (记住此处要用双引号引起)
成功了╮(╯▽╰)╭但是比起老师的一步到位还差的很远呀
替换特殊字符时,要在特殊字符前加\,如要将agent.ini中的test替换为/database: sed -i 's/test/\/database/' agent.ini
要使用变量替原来的字符: sed 's/222/'$user_name'/g' file.txt (使用$user_name替换222)
发表评论
-
视频:中国首届微博开发者大会杨卫华演讲
2011-09-06 13:40 1102微博平台首席架构师杨卫华演讲 新浪科技讯 11月16日下午消 ... -
Windows Mobile与Android应用开发对比
2011-09-06 11:44 1248Windows Mobile在经历过最初的Wince系列,po ... -
android 调用C++的so
2011-07-08 18:36 4339第一步:开发环境的安 ... -
CentOS环境下opensuse虚拟机的创建
2011-02-24 09:41 1358CentOS环境下opensuse虚拟机的创建 1. ... -
unix下C编程
2011-02-21 16:44 999http://www.chinaunix.net/jh/23/ ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--消息管理
2011-02-21 16:40 1030[color=blue]6)Linux程序设计入门--消息管理 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--信号处理
2011-02-21 16:39 1232[color=blue]5)Linux程序设计入门--信号处理 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--时间概念
2011-02-21 16:38 1075[color=blue]4)程序设计入 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--文件操作
2011-02-21 14:48 934[color=blue]3)Linux程序设计入门--文件操作 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--进程介绍
2011-02-21 14:43 1224[color=blue]2)Linux程序设计 ... -
linux操作系统下c语言编程入门<unix操作系统下同样适用>——Linux程序设计入门--基础知识
2011-02-21 14:17 1427<! ... -
为什么在操作系统中引入虚拟技术呢
2010-12-21 23:17 1374通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同 ... -
虚拟设备和 Open Virtualization Format
2010-12-21 23:15 1243虚拟设备和 Open Virtualization Forma ... -
如何用puttygen由pem生成ppk
2010-11-09 13:48 208761. 概述 因为内存3GB的限制在自己的笔记本电脑上通常不能 ... -
linux开机启动服务进程
2010-11-04 21:30 15911)redhat的启动方式和执 ... -
linux开机启动过程
2010-11-04 21:28 1282一.BIOS 加电自检 当你按电源开关开机时,电脑会首先 ... -
(原创)自动扫描局域网并且发现指定端口开放的主机ip的shell脚本
2010-11-04 21:10 6542经过2天研究,学习shell和awk脚本,得到如下功能: 1 ... -
AWK命令详解(大全)
2010-11-03 21:25 1809什么是awk? 你可能对UNIX比较熟悉,但你可能对aw ... -
使用 awk 处理 nmap 扫描结果,求出存活主机IP
2010-11-03 21:22 3668在使用 nmap 扫描时,得到如下结果: ... -
awk基础
2010-11-03 21:21 1232awk语言 最基本功能是在文件或字符串中基于指定规则浏览和抽 ...
相关推荐
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
shell脚本学习指南-中文版shell脚本学习指南-中文版shell脚本学习指南-中文版shell脚本学习指南-中文版shell脚本学习指南-中文版shell脚本
shell脚本学习指南,中文清晰带书签, 程序员必备.
shell脚本学习指南电子书,学习shell脚本语言的经典书籍,很好的介绍了shell脚本的开发
SHELL脚本学习指南,
Linux_shell脚本全面学习 Linux_shell脚本全面学习
Shell脚本学习指南 提取码: s84l
shell脚本学习资料 包括了比较常用的sed awk等命令
shell脚本学习手册,内容比较全,由大神编写,有兴趣的可以下载看一下
Shell脚本学习手册高清版 带书签 欢迎大家下载
Shell脚本学习教程PDF版
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
shell脚本Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享Shell脚本学习教程及案例分享...
自己整理的Shell脚本学习笔记,脚本实例可直接运行:1. 变量和字符串;2. 传递参数;3. 基本运算符;4. echo&printf;&test;;5. 流程控制;6. 函数;7. 输入输出重定向&文件嵌入
Linux-shell脚本全面学习.pdf
shell从入门到应用,也包含AWK sed等操作,提供课件以及各种完整脚本以便学习。此课件视频来源于B站,链接为:https://www.bilibili.com/video/BV1st411N7WS?from=search&seid=5240570590491899209。