当前位置: 技术问答>linux和unix
如何搜索与替换
来源: 互联网 发布时间:2015-07-22
本文导语: 请问在unix的文本方式下如何搜索与替换。并在多个文件中。。。。有没有命令可以实现!!! | for example: (Shell is bash) 1. searching all *.c files that contain "extern" string in /home/test find /home/...
请问在unix的文本方式下如何搜索与替换。并在多个文件中。。。。有没有命令可以实现!!!
|
for example: (Shell is bash)
1. searching all *.c files that contain "extern" string in /home/test
find /home/test -name "*.c" -exec grep -H "extern" {} ;
2.replace "retrun" with "return" in all *.c files at /home/test
for i in `find /home/test -name "*.c"`; do sed -s 's/retrun/return/g' $i > .tmp; mv .tmp $i; rm -f .tmp; done
1. searching all *.c files that contain "extern" string in /home/test
find /home/test -name "*.c" -exec grep -H "extern" {} ;
2.replace "retrun" with "return" in all *.c files at /home/test
for i in `find /home/test -name "*.c"`; do sed -s 's/retrun/return/g' $i > .tmp; mv .tmp $i; rm -f .tmp; done
|
替换在emacs中好像是:Alt+x query-replace[回车]
然后输入要搜索的内容[回车],要替换的内容[回车],
每次替换之前它会询问,空格就是允许替换。
多个文件搜索指定字符串:
比如当前目录下的所有.c文件,查找含有decoder_usmarc函数的文件
ls *.c | xargs grep -l "decoder_usmarc"
其中grep 有一个-exec参数,能够为每一个找到的文件执行一个指令,
我想,你的替换命令就可以直接跟在后面。
然后输入要搜索的内容[回车],要替换的内容[回车],
每次替换之前它会询问,空格就是允许替换。
多个文件搜索指定字符串:
比如当前目录下的所有.c文件,查找含有decoder_usmarc函数的文件
ls *.c | xargs grep -l "decoder_usmarc"
其中grep 有一个-exec参数,能够为每一个找到的文件执行一个指令,
我想,你的替换命令就可以直接跟在后面。
|
grep + sed + awk
看看《LINUX与UNIX_Shell编程指南》
看看《LINUX与UNIX_Shell编程指南》
|
grep + sed + awk