字符串查找
http://blog.csdn.net/yuanfeiyan/article/details/2176270
grep -n "str" -r ./
这是查找当前目录下以及下辖子目录下所有包含str字符串的文件,会列出文件名.以及该行的内容.以及行号
http://www.cnblogs.com/taosim/admin/EditArticles.aspx?postid=2729633
在特定文件中grep某关键字,除了使用find 命令加exec选项之外,其实还有更简单的方法:
grep -R --include="*.cpp" key dir
上述命令的含义:
在dir目录下递归查找所有.cpp文件中的关键字key
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
当然,如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读:
$ grep magic /usr/src/linux/Documentation/* | less
http://soft.chinabyte.com/os/375/12415875.shtml
单个文件中查找替换很简单,就不说了。文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结。
查找文件夹下包含字符串的文件
例:查找/usr/local目录下所有包含“rubyer.me”的文件。
1 grep -lr 'rubyer.me' /usr/local/*
vim替换单个文件中所有字符串方法
例:替换当前文件中所有old为new
1 :%s/old/new/g
2
#%表示替换说有行,g表示替换一行中所有匹配点。
替换文件夹下包含字符串的文件
sed结合grep
例:要将目录/www下面所有文件中的zhangsan都修改成lisi,这样做:
1 sed -i “s/old/new/g” `grep old -rl /www`
Linux查找和替换目录下所有文件中字符串
单个文件中查找替换很简单,就不说了。文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结。
查找文件夹下包含字符串的文件
例:查找/usr/local目录下所有包含”rubyer.me”的文件。
grep -lr 'rubyer.me' /usr/local/*
vim替换单个文件中所有字符串方法
例:替换当前文件中所有old为new
:%s/old/new/g #%表示替换说有行,g表示替换一行中所有匹配点。
替换文件夹下包含字符串的文件
sed结合grep
例:要将目录/www下面所有文件中的zhangsan都修改成lisi,这样做:
sed -i "s/old/new/g" `grep old -rl /www`
http://blog.sina.com.cn/s/blog_4e0869690100z2ft.html
1. set命令可以显示出当前shell下所有全局参量定义及其值;
2. 查找并删除当前目录下小文件:
find . -type f -size -10k -exec rm {} \;
说明:
-type f 查找文件
-size -10k,
小于10k的。"+"是表示要求系统只列出大于指定大小的文件,而使用"-"则表示要求系统列出小于指定大小的文件。
3. 遍历文件夹grep一个字符串
find . -name "*c" | xargs grep "strings"
在当前文件夹下所有c文件中查找字符串“string”
4. 在某目录下文件中查找某字符串
grep -r youcode dir
例如:查找home下文件中查找hello
grep -r hello /home
例如:在当前所有目录下文件中查找hello,不区分大小写
grep -ir hello .
http://blog.csdn.net/rcxqc2002/article/details/4471078
查找目录中文件的字符串 grep -n "str" -r ./ 这是查找当前目录下以及下辖子目录下所有包含str字符串的文件
如何用grep在本目录及其所有的子目录下的文件里面查找字符串abc?
grep -R abc *
要找隐藏文件,可以:
grep -R abc * .*
find ./ -type f|xargs grep abc
以前写的一个小脚本,不过没用grep,不知是否合lz用
#!/bin/bash
# create by krqi ^_^,glade to help u :)
find . -type f -exec gawk 'BEGIN{n=0} {if($0~/'"$1"'/){a[n++]=FNR" "$0}}END{if(n>0){print(FILENAME);for(i=0;i<n;++i)print a;}}' {} /; 2>/dev/null
打印当前目录下文件中包含指定的字符串信息,
首先打印文件名,然后打印所查找的字符串在该文件中的行号并打印出该行。
希望对大家工作有所帮助:)
用法: 比如你把它存为 myfind,然后这样使用
myfind "what u want find"
然后就把当前目录下(包含子目录),所有包含"what u want find"的信息打印出来了:)
http://www.phpzixue.cn/detail1141.shtml
linux下查找某目录下所有文件包含某字符串的命令:
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"phpzixue.cn"的行
find . -type f -name "*.txt" | xargs grep "phpzixue.cn"
http://liuzhiqiangruc.iteye.com/blog/1271155
有时候,我们要简单统计下一个文件中包含某个特殊字符串的行数。
我第一个想到的是grep + wc,不知道你想到了什么,不过,我们确实有多种方法。
假如我们的文件叫msg,里面有23380092行数据。
某些行是这样的receive: msg1
我们的任务是找出这些行的数量。
1. grep方法
grep ' msg1' msg | wc -l
使用这种方法耗时: 1s
2. awk方法
awk 'BEGIN{c=1}{if($0 ~ / msg1/) c=c+1}END{print c}' msg
使用这种方法耗时:8s
3. 另一种awk方法
awk 'BEGIN{FS=":";c=0;}{if($2 == " msg1") c=c+1}END{print c}' msg
使用这种方法耗时:14s
4. 文件描述符打开文件遍历
- #!/bin/bash
- count=0;
- exec 4<msg
- while read line<&4
- do
- if [ "$line" == "receive: msg1" ]; then
- count=$((count+1))
- fi
- done
- exec 4<&-
- echo $count;
我日,这种方法我跑了N久都没有出结果,效率差到无法忍受。
当然脚本本身的正确性,是通过小文件测试过得。
以上几种方法,grep的效率简直神了。这么多数据筛选出来,再有wc统计之后,一共只需要1秒。
而采取自己遍历文件的方法,无论是awk还是自己写脚本打开文件,效率都极差。
看来,我们还是懒一点的好。呵呵。