LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1198|回复: 3

求助:读取配置文件写入到另外一个文件sed&awk

[复制链接]
发表于 2008-12-2 13:23:03 | 显示全部楼层 |阅读模式
现在的情况是这样的

有minihttpd.conf文件

里面有配置
  1. HTTPD_HTTPS_PORT=445
复制代码

有network.conf文件

里面有配置
  1. port=443
复制代码


现在怎么能用脚本将network.conf中的配置读取出来写入到minihttpd.conf中,
以便在network.conf中port的端口有所变化时minihttpd.conf中也有相应变化

现在我可以通过
  1. sed -n '/HTTPD_HTTPS_PORT/p'  network.conf |awk -F= '{$1=='HTTPD_HTTPS_PORT' ; print $2 }'
复制代码

截取到443,可是如何到minihttpd.conf匹配到port并且使之等于443呢?

谢谢
发表于 2008-12-4 22:55:02 | 显示全部楼层
  1. sed -i 's/HTTPD_HTTPS_PORT=[0-9]*/HTTPD_HTTPS_PORT='`awk -F= '$1=="port" { print $2 }' network.conf `/ minihttpd.conf
复制代码
或者更可读些:
  1. port=`awk -F= '$1=="port" { print $2 }' network.conf`
  2. sed -i 's/HTTPD_HTTPS_PORT=[0-9]*/HTTPD_HTTPS_PORT=$port/' minihttpd.conf
复制代码
前提条件是HTTPD_HTTPS_PORT=行和port=行再这两个文件中唯一。
回复 支持 反对

使用道具 举报

发表于 2008-12-5 16:21:17 | 显示全部楼层
var=$(cat minihttpd.conf | grep "HTTPD_HTTPS_PORT="|grep -oE "[0-9]{1,6}")
cat network.conf| grep "HTTPD_HTTPS_PORT="|sed 's/[0-9]\{1,6\}/'$var'/'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-8 15:03:55 | 显示全部楼层
谢谢LS两位,现在明白了

谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表