首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux替换文件中的内容

问Linux替换文件中的内容
EN

Stack Overflow用户
提问于 2014-07-21 03:31:38
回答 5查看 134关注 0票数 0

伙计们。有一个名为“server.conf”的文件,我希望使用shell来更改其中的内容。在第115行中,它中有server-bridge 192.168.50.225(ip) 255.255.0.0(mask) 192.168.10.50(begin ip) 192.168.10.90(end ip)。我想改变ip,mask,begin ip和end ip。例如,我计划改变

代码语言:javascript
复制
`server-bridge 192.168.50.225 255.255.0.0  192.168.10.50 192.168.10.90` 

转到

代码语言:javascript
复制
`server-bridge 192.168.10.100 255.255.0.0  192.168.10.60 192.168.10.80` 

我应该如何使用sed或其他工具?非常感谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-21 06:47:23

sed -i‘s 's/server-bridge\ 192.168.50.225\ 255.255.0.0\ 192.168.10.50\ 192.168.10.90/服务器-桥\ 192.168.10.100\ 255.255.0.0\ 192.168.10.60\ 192.168.10.80/’server.conf

您还可以创建一个简单的脚本,其中要替换的新值存储在$ip ..etc中.sed -i将对文件进行就地编辑。

票数 1
EN

Stack Overflow用户

发布于 2014-07-21 03:42:48

我用过的最好的工具是Vi。

(sudo) vi /home/mydoc.txt将打开并允许您进行任何需要进行的编辑。如果您以前从未使用过Vi,那么在网上有一些很好的方法和教程。这里有一个:

http://www.howtogeek.com/102468/a-beginners-guide-to-editing-text-files-with-vi/

但是,我鼓励您在更改所引用的文件之前真正地阅读和实验测试文件,并在此之前备份该文件( cp /home/mydoc.txt mydoc.txt-orig )。您可以始终删除已编辑的文件,不工作,但恢复原始后,广泛退出可以是一种拔毛的经验。

票数 0
EN

Stack Overflow用户

发布于 2014-07-21 03:43:48

您可以使用sed来执行此操作,例如,注意:每个空格都由\ sed简介转义

代码语言:javascript
复制
   cat server.conf | sed 's/server-bridge\ 192.168.50.225\ 255.255.0.0\ \ 192.168.10.50\ 192.168.10.90/server-bridge\ 192.168.10.100 255.255.0.0\ \ 192.168.10.60\ 192.168.10.80/' > server.conf

或者您可以像这样使用两个文件来确保安全

代码语言:javascript
复制
cat server.conf | sed 's/server-bridge\ 192.168.50.225\ 255.255.0.0\ \ 192.168.10.50\ 192.168.10.90/server-bridge\ 192.168.10.100 255.255.0.0\ \ 192.168.10.60\ 192.168.10.80/' > server.conf.bak
cat server.conf.bak > server.conf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24857336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档