Linux Shell脚本实现在文件指定的行插入字符串
2014-04-16 12:35
225 查看
涉及知识点:grep字符串查找,awk截取列,until条件操作,sed字符串插入,变量与字符串连接等。
人工操作(首先vim打开文件找到字符串所在的位置,插入操作):
vim /etc/glance/glance-api-paste.ini # Line69 auth_host = controller admin_user = glance admin_tenant_name = service admin_password = 94fbb57c427f539b0fc5
Shell脚本实现(grep查找字符串位置,sed执行插入操作):
num=$(grep -n '\[filter:authtoken\]' /usr/share/glance/glance-api-paste.ini | awk -F ':' '{print $1}') nump=1p until [[ $(sed -n "$nump" /usr/share/glance/glance-api-paste.ini) == "" ]]; do num=$(expr $num + 1) nump=$num"p" done numa=$num"a" sed -i '$numa auth_host = controller admin_user = glance admin_tenant_name = service admin_password = 94fbb57c427f539b0fc5' /usr/share/glance/glance-api-paste.ini
注:
已无害化处理。
sed中的sub命令如a插入,p打印等不能直接跟变量相连接,使用双引号进行连接,如“numa=$num"a"”。
blog.51cto.com 标签: shell,sed,grep,字符串操作,变量与字符串连接
附加:
14:51 2014/10/27
修正一个bug,此bug导致sed处理多行时没有正确换行,修复方法为在换行时添加换行符“\”修复脚本如下:sed -i '$numa auth_host = controller\n\
admin_user = glance\n\
admin_tenant_name = service\n\
admin_password = 94fbb57c427f539b0fc5' /usr/share/glance/glance-api-paste.ini
相关文章推荐
- Linux Shell脚本实现在文件指定的行插入字符串
- 使用Linux shell脚本实现FTP定时执行批量下载指定文件
- shell脚本中调用vim 替换指定路径下文件中的字符串
- shell 脚本 打印指定目录下包含某些字符串的文件
- 涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串
- ubuntu find+sed 实现对目录中文件指定字符串替换
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库.txt
- Linux vim如何实现文件中多行或者所有行相同列插入相同的字符串
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库
- Linux shell脚本实现FTP远程文件获取
- linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理
- 一个使用shell脚本实现的修改文件中的字符串
- [Unix] shell脚本实现的修改文件中的字符串
- js 按照指定间隔 向字符串中插入随机字符串的实现代码
- 【qtp脚本】实现自动创建目录并通过测试写字板生成指定个数的文件
- linux shell脚本连接oracle查询数据插入文件和日志文件中
- 在文件中替换字符串为指定字符串的实现函数
- php 在字符串指定位置插入新字符的简单实现
- python和shell脚本实现查看大文件指定区域范围内的文件内容
- 设计函数char *insert(s1,s2,n),用指针实现在字符串s1中的指定位置n处插入字符串s2