伙计们。有一个名为“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。例如,我计划改变
`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` 我应该如何使用sed或其他工具?非常感谢。
发布于 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将对文件进行就地编辑。
发布于 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 )。您可以始终删除已编辑的文件,不工作,但恢复原始后,广泛退出可以是一种拔毛的经验。
发布于 2014-07-21 03:43:48
您可以使用sed来执行此操作,例如,注意:每个空格都由\ sed简介转义
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或者您可以像这样使用两个文件来确保安全
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.confhttps://stackoverflow.com/questions/24857336
复制相似问题