Chinaunix首页 | 论坛 | 博客
  • 博客访问: 828185
  • 博文数量: 190
  • 博客积分: 2991
  • 博客等级: 少校
  • 技术积分: 2400
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-24 18:11
文章分类

全部博文(190)

文章存档

2015年(3)

2014年(1)

2013年(65)

2012年(121)

我的朋友

分类: 系统运维

2012-12-28 11:13:35

工作上需要将文本文件的某个配置信息替换掉,一直没有想到好的办法,因为我不知道怎么在sed的样式中使用变量。

sed的样式使用单引号的话就没法展开变量。从网上搜了资料才知道,也可以使用双引号的,这样就可以自由使用变量了。使用双引号之后,sed变得异常强大。不多说,直接贴原码:
#!/bin/sh 
file="./"
oldname=$(cat $file/old_dev.cfg | grep device_name | awk -F= '{print $2}')
newname=$(cat $file/new_dev.cfg | grep device_name | awk -F= '{print $2}')
echo $oldname $newname
sed   "/device_name/s/$newname/$oldname/" $file/new_dev.cfg  //在含有device_name的行中将$newname替换为$oldname
原文来自:
阅读(946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~