shell 文件替换问题

lordports 2011-11-25 09:04:00
例如:文件a.txt内容
(xxxxx)
x=8
y=19

文件b.txt
(XXXXX)
x=9
y=19
我想把a.txt的内容更新为
(xxxxx)
x=9
y=19
shell如何实现,a中可能还有其他内容 如括号中的东西不需要更新,
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
向良玉 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lordports 的回复:]

这样写要是替换的内容比较多呢?有没有一种可扩展,用循环把B文件的内容读出来,读一行,替换a内容中相应的内容,是不是会好些,纠结了很久,都没有想出来如何玩
[/Quote]
行数相同?有什么规则?b出现了x=就替换a中x=?单个还是全部?。。。
你说的东西太模糊了,按照具体情况写吧
ljc007 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lordports 的回复:]
这样写要是替换的内容比较多呢?有没有一种可扩展,用循环把B文件的内容读出来,读一行,替换a内容中相应的内容,是不是会好些,纠结了很久,都没有想出来如何玩
[/Quote]
awk更加容易些
justkk 2011-11-26
  • 打赏
  • 举报
回复
sed -i '/x=/c\x=9' a.txt
不管x的值原来是多少,直接更改为x=9
曳尾之鱼 2011-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qq120848369 的回复:]

C/C++ code
sed -ir "s/x=8/x=9/g"
[/Quote]

最好还匹配一下y=19
lordports 2011-11-26
  • 打赏
  • 举报
回复
这样写要是替换的内容比较多呢?有没有一种可扩展,用循环把B文件的内容读出来,读一行,替换a内容中相应的内容,是不是会好些,纠结了很久,都没有想出来如何玩
lordports 2011-11-26
  • 打赏
  • 举报
回复
这样写要是替换的内容比较多呢?有没有一种可扩展,用循环一行一行的把值读出来后,再替换a内容,是不是会好些,纠结了很久,都没有想出来如何玩
qq120848369 2011-11-25
  • 打赏
  • 举报
回复
sed -ir "s/x=8/x=9/g"

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧