shell如何取出特定文本内容并替换另一个文本中的指定内容???

比如$catfile1mqserver=127.0.0.1$catfile2ip=192.168.1.1如何通过shell脚本将file1中的内容改为mqserver=1... 比如
$cat file1
mqserver=127.0.0.1
$cat file2
ip=192.168.1.1
如何通过shell脚本将file1中的内容改为 mqserver=192.168.1.1
展开
 我来答
wallcopper
2017-03-17 · TA获得超过3447个赞
知道大有可为答主
回答量:1986
采纳率:86%
帮助的人:1812万
展开全部
1、按=分割取第二列
cat $file1|grep mqserver|awk -F= '{print $2}'`
2、直接替换文件内容
sed -i "s/127.0.0.1/192.168.1.1/" file1
3、实例:
#!/bin/sh
file1=ip1.txt
file2=ip2.txt
IP1=`cat $file1|grep mqserver|awk -F= '{print $2}'`
IP2=`cat $file2|grep ip|awk -F= '{print $2}'`
echo change $IP1 to $IP2.
sed -i "s/$IP1/$IP2/" $file1
more $file1
追问
我的file1中有多个IP需要更改,我用了你的方法,如果file1中的多个IP在更改之前都相同的话,执行到Sed替换的时候就会把那些IP全部改为相同的IP,不会再执行下面的sed替换。请问我该怎么做才能不管更改之前IP相不相等,都可以实现每个sed语句对应一个替换?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式