sed运用实例一——基于变量的动态替换
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,在工作中我需要修改两个文件:文件一:/etc/vmware/networkingVERSION=1,0answer VNET_1_DHCP yesanswer VNET_1_DHCP_CFG_HASH
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
服务器浏览器不兼容
网络安全法 网站备案
数据库的重组与构建
苏州城市学院图书馆数据库
软件开发板和标准版的区别
信息网络安全基础建设方案要求
服务器分布式部署是什么意思
ecs使用中服务器换操作系统
pc搭建服务器配置
大学网络安全班会结尾
服务器存储用哪种硬盘
华为服务器分类
公网服务器是怎么远程管理的
广东交友软件开发定制
软件开发公司4p
趣动互联网科技
朝阳区创新网络技术服务优点
浦东新区常见网络技术调试
供电企业网络安全管理
21世纪中国互联网科技
网络安全自渗透工具
数据库字段拼接值
4399的服务器都是官服吗
软件开发公司如何核算成本
网络安全防范的作用
如何解除网络安全防护
开发数据库的常用流程
王牌战士怎么改服务器
网络安全读后感100字
我的世界暑假服务器礼包商店