linux 下的查找与替换
以例子进行说明
在当前目录下的.c文件中查找字符串"password"
grep "password" *.c
在当前目录及其多个子目录中查找文件test.c
find . -name "test.c" -print
在当前目录及其多个子目录中查找.vbs文件并删除之
find . -name "*.vbs" -exec rm {} \;
在当前目录及其多个子目录下的.c文件中查找字符串"password"
find . -name "*.c" -print | xargs grep "password"
在当前目录下的.c文件中把字符串"password"替换成"pwd"
perl -pi -e 's/password/pwd/g' *.c
在当前目录下的.c文件中把字符串"password"替换成"pwd"并以.bak扩展名备份
perl -pi.bak -e 's/password/pwd/g' *.c
在当前目录及子目录下的.c文件中替换字符串"password"为"pwd"
find . -name "*.c" -print | xargs perl -pi -e 's/password/pwd/g'
在vi中使用的查找替换方法
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。