使用sed给文件的指定行添加内容
2014-02-28 15:11
246 查看
有这样一个文件:
说明:
因为涉及到很多服务器,而且每个服务器的配置版本号不同,不能把他们都覆盖成为同一个文件。所以偷懒写了一个脚本,批量执行。
分析:
第二行的sed是在versions.xml第22下添加上述三行内容
第三行的sed是将refine的行首加两个空格,以缩进一致
第四行是将修改后的文件格式转换成unix格式
扩展:
其实也可以使用 \ 来转意空格问题 上述的第二行第三行可以合并为这样
执行截图:
<?xml version="1.0" encoding="utf-8" ?> <version sver="0.1.0.36" rpcver="0.1.4.162" tilver="0.1.0.52" mpver="0.1.2.397" npcver="0.1.1.353" monver="0.1.3.697" mitmver="0.1.0.120" sklver="0.1.2.581" itmver="0.1.2.731" lver="0.1.0.120" meriver="0.1.0.94" misver="0.1.3.619" petver="0.1.0.207" lvlver="0.1.4.865" mktver="0.1.0.330" genver="0.1.2.348" fellowver="0.1.1.64" newguide="0.1.0.57" activity="0.1.0.49" fate="0.1.0.25" > </version>因为有新功能,现在需要追加:
refine="0.1.0.12" dailysign="0.1.0.4" stonehenge="0.1.0.2"三行内容
说明:
因为涉及到很多服务器,而且每个服务器的配置版本号不同,不能把他们都覆盖成为同一个文件。所以偷懒写了一个脚本,批量执行。
#!/bin/bash cp versions.xml versions.xml.bak sed -i"22a refine=\"0.1.0.12\"\n dailysign=\"0.1.0.4\" \n stonehenge=\"0.1.0.2\"" versions.xml sed -i"/^refine/ s/^/ / " versions.xml /usr/bin/dos2unix versions.xml tail versions.xml
分析:
第二行的sed是在versions.xml第22下添加上述三行内容
第三行的sed是将refine的行首加两个空格,以缩进一致
第四行是将修改后的文件格式转换成unix格式
扩展:
其实也可以使用 \ 来转意空格问题 上述的第二行第三行可以合并为这样
sed
-i
"22a \ refine=\"0.1.0.12\"\n dailysign=\"0.1.0.4\" \n stonehenge=\"0.1.0.2\""
versions.xml
执行截图:
相关文章推荐
- 使用sed在一个文件中指定位置插入另外一个文件的内容-r命令的使用
- 请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net
- 【实用手记】使用sed命令替换指定文件内容
- 使用python读取指定目录下的源代码并将内容复制到同一新文件中
- Linux系统中sed命令在文件某行前后添加内容的用法
- 使用sed和awk分割部分文件内容
- 使用shell命令sed将指定目录下的所有文件中指定的字符串替换成指定的字符串
- sed直接替换文件指定内容并保存
- sed-i 命令在文件第一行添加内容
- LINUX 使用echo向文件中添加内容
- sed直接替换文件指定内容并保存
- 如何通过sed命令在文件中包含某个关键字的指定行的上面或下面插入内容
- jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
- linux中sed在指定字符前后添加内容
- 使用grep搜索目录树中文件的指定内容
- sed向文件末尾添加内容
- Linux下使用find查找文件内容,跳过所有目录名成和指定子目录的方法
- 使用VBA读取指定Excel文件指定Sheet指定单元格的内容
- java 使用IO流读取指定文件中的内容
- shell如何在指定文件的指定位置后面添加内容