| 关键词: 文件 命令 localhost 202.123 方法 23.12 sed argdo update 简便 |
需要对多个文件进行查找替换时,很容易想到用sed,但是由于不更改原文件,替换后需要先改名,然后再用更改的文件替换原文件,还是不太方便。其实vi中有更简便的方法,就是用argdo命令。可以用:help argdo查找其功能。 比如我需要在所有本目录下的。xml文件中的202.123.23.12 IP替换为localhost 可以用如下方法: vi *.xml :argdo %s/202.123.23.12/localhost/ge | update 其中update是直接替换覆盖原文件,若需要确认,则可使用 :argdo %s/202.123.23.12/localhost/gec | update 以下的Blog中有vi替换方法的详细叙述: http://www.ibrahim-ahmed.com/2008/01/find-and-replace-in-multiple-files-in.html 另外,新版的sed提供了一种同样简便的多文件替换的方法,就是用带-i选项的sed(不过我猜想你需要查看你使用的sed版本是否支持-i选项),其方法是: sed -i 's/202.123.23.12/localhost/g' *.xml 这样一条命令就完成了所有的替换操作!如果担心进行了错误替换,可以在-i命令后带后缀进行备份,比如: sed -i.bak 's/202.123.23.12/localhost/g' *.xml 但应注意:替换命令后只需要有g命令,不能再加p命令。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|