Linux的shell编程中如何将一段字符串写入到某个文件中并覆盖文件的一部分内容

比如我执行这个命令vi/etc/sysconfig/network-scripts/ifcfg-eth1得到如下内容:DEVICE="eth1"BOOTPROTO="st... 比如我执行这个命令vi /etc/sysconfig/network-scripts/ifcfg-eth1得到如下内容:
DEVICE="eth1"
BOOTPROTO="static"
HWADDR="00:E0:B4:08:4C:D0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="edb13624-cf68-456b-8201-4ae8c9fc1643"
IPADDR="196.168.0.10"
NETMASK="255.255.255.0"

我有一个变量mac="00:E0:B4:08:4D:CF" 我想把文件中HWADDR的值改为该变量的值 怎么搞?
最好不要以行数做标准 因为要批量改机器 每台机器HWADDR都在不同的行
展开
 我来答
百度网友a442d2a7f1
推荐于2016-11-05 · TA获得超过3245个赞
知道大有可为答主
回答量:2677
采纳率:50%
帮助的人:1247万
展开全部
两种思路,
第一种,你打开文件,找到匹配的行,改掉,重写个文件,删除原来的。改这个文件为一样的名字。

第二种,以需要改写的文本,把原来的文件分成两个部分,要改写的部分空出,然后重定向合并到一个文件里。
例如, file.txt 分为 a.txt b.txt 现在
1 a.txt>file.txt
2 变行 >>file .txt
3 b.txt >>file.txt
百度网友33baabeb6
2014-01-22 · TA获得超过1945个赞
知道大有可为答主
回答量:1767
采纳率:0%
帮助的人:1524万
展开全部
sed -i 's/HWADDR=.*/HWADDR=abc/' /etc/sysconfig/network-scripts/ifcfg-eth1
追问
如何把你写的那行里的abc变成变量呢 因为要把一个变量的值写进去
追答
把替换两连的单引号去掉,直接写成shell脚本
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingonet
2014-01-22 · TA获得超过430个赞
知道小有建树答主
回答量:872
采纳率:66%
帮助的人:497万
展开全部
我没有做过,不过我觉得应该是要做php的ini分析一样的文件。你可以找找看是否有这样的组件直接分析,分析好之后替换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式