sed运用实例一——基于变量的动态替换
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,在工作中我需要修改两个文件:文件一:/etc/vmware/networkingVERSION=1,0answer VNET_1_DHCP yesanswer VNET_1_DHCP_CFG_HASH
千家信息网最后更新 2026年11月04日sed运用实例一——基于变量的动态替换
在工作中我需要修改两个文件:
文件一:/etc/vmware/networking
- VERSION=1,0
- answer VNET_1_DHCP yes
- answer VNET_1_DHCP_CFG_HASH 50CE8453B1072EA401BFFA704E6C01F7AE0BA67C
- answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
- answer VNET_1_HOSTONLY_SUBNET 172.16.77.0
- answer VNET_1_VIRTUAL_ADAPTER yes
- answer VNET_8_DHCP yes
- answer VNET_8_DHCP_CFG_HASH 1DA1A936DCB3AA3313CF293A9C96D25B76AB48A2
- answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
- answer VNET_8_HOSTONLY_SUBNET 192.168.43.0
- answer VNET_8_NAT yes
- answer VNET_8_VIRTUAL_ADAPTER yes
文件二:/etc/vmware/vmnet8/dhcpd/dhcpd.conf
- # Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
- #
- # This file was automatically generated by the VMware configuration program.
- # See Instructions below if you want to modify it.
- #
- # We set domain-name-servers to make some DHCP clients happy
- # (dhclient as configured in SuSE, TurboLinux, etc.).
- # We also supply a domain name to make pump (Red Hat 6.x) happy.
- #
- ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
- # Modification Instructions: This section of the configuration file contains
- # information generated by the configuration program. Do not modify this
- # section.
- # You are free to modify everything else. Also, this section must start
- # on a new line
- # This file will get backed up with a different name in the same directory
- # if this section is edited and you try to configure DHCP again.
- # Written at: 03/22/2013 15:49:55
- allow unknown-clients;
- default-lease-time 1800; # default is 30 minutes
- max-lease-time 7200; # default is 2 hours
- subnet 192.168.43.0 netmask 255.255.255.0 {
- range 192.168.43.128 192.168.43.254;
- option broadcast-address 192.168.43.255;
- option domain-name-servers 192.168.43.2;
- option domain-name localdomain;
- default-lease-time 1800; # default is 30 minutes
- max-lease-time 7200; # default is 2 hours
- option netbios-name-servers 192.168.43.2;
- option routers 192.168.43.2;
- }
- host vmnet8 {
- hardware ethernet 00:50:56:C0:00:08;
- fixed-address 192.168.43.1;
- option domain-name-servers 0.0.0.0;
- option domain-name "";
- option routers 0.0.0.0;
- }
- ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
需求:
将两个文件中的"192.168.43"修改为"202.16.22",不过,有时"192.168.43"会表现为其它的IP值,而要修改的目标字串"202.16.22"也可能会随着环境的改变另行设置.
基于此需求,本人编写了如下测试脚本:
针对文件一:
- #!/bin/bash
- # $vmnat_subnet_old变量表示vmnat8原有的子网配置,注意只截取前三段
- vmnat_subnet_old=`grep "VNET_8_HOSTONLY_SUBNET" /etc/vmware/networking | sed 's/..$//' | cut -d' ' -f 3`
- # $vmnat_subnet_new变量表示vmnat8子网的目标配置,注意只截取前三段
- vmnat_subnet_new='192.168.40'
- cp /etc/vmware/networking /etc/vmware/networking_bak0
- sed -i '/VNET_8_HOSTONLY_SUBNET/s/'"$vmnat_subnet_old"'/'"$vmnat_subnet_new"'/' /etc/vmware/networking
- grep "$vmnat_subnet_new" /etc/vmware/networking
- cp /etc/vmware/networking_bak0 /etc/vmware/networking
针对文件二:
- #!/bin/bash
- # $vmnat_subnet_new变量表示vmnat8子网的目标配置,注意只截取前三段
- vmnat_subnet_new='192.168.40'
- # $vmnat_subnet_old变量表示vmnat8原有的子网配置,注意只截取前三段
- vmnat_subnet_old=`grep "VNET_8_HOSTONLY_SUBNET" /etc/vmware/networking | sed 's/..$//' | cut -d' ' -f 3`
- cat /etc/vmware/vmnet8/dhcpd/dhcpd.conf
- cp /etc/vmware/vmnet8/dhcpd/dhcpd.conf /etc/vmware/vmnet8/dhcpd/dhcpd.conf_bak0
- sed -i '/'"$vmnat_subnet_old"'/s//'"$vmnat_subnet_new"'/g' /etc/vmware/vmnet8/dhcpd/dhcpd.conf
- grep "$vmnat_subnet_new" /etc/vmware/vmnet8/dhcpd/dhcpd.conf
- cp /etc/vmware/vmnet8/dhcpd/dhcpd.conf_bak0 /etc/vmware/vmnet8/dhcpd/dhcpd.conf
优点:
可以不用事先知道要替换的字符是(本例中:192.168.43)什么,只需要知道自己想替换为(本例中:202.16.22)什么就可以了。
呵呵,我的工作桌面截图。
文件
变量
子网
配置
目标
两个
需求
工作
不用
优点
字符
截图
桌面
环境
脚本
测试
动态
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
花魁咖啡
什么是科技互联网
湖南永感互联网科技有限公司
金融科技还是互联网
上海挚品互联网科技
长亮科技 互联网金融
海南购全球互联网科技
山东吉时兔互联网科技有限公司
蓝色互联网科技
昭通云南众福互联网科技有限公司
互联网还是高科技吗
荆州市昕露互联网络科技有限公司
新兴科技互联网创新大赛颁奖典礼
深圳市优智互联网科技有限公司
互联网科技圈年度人物
图游互联网科技
35岁以上互联网科技行业
神州科技互联网有限公司
互联网时代高科技布局
蓝思科技飞鸽互联网
佩信高科技互联网
互联网科技商业
玉溪互联网科技怎么选
工业互联网山东科技大学
江苏互联网智能科技软件
互联网科技新闻
互联网公司属于科技吗
数字互联网科技有限公司
盐城市攀科互联网科技有限公司