工作上需要将文本文件的某个配置信息替换掉,一直没有想到好的办法,因为我不知道怎么在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
原文来自:
阅读(974) | 评论(0) | 转发(0) |