Chinaunix首页 | 论坛 | 博客
  • 博客访问: 717174
  • 博文数量: 182
  • 博客积分: 2088
  • 博客等级: 大尉
  • 技术积分: 1698
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 15:09
个人简介

.

文章分类

全部博文(182)

文章存档

2016年(1)

2015年(18)

2014年(14)

2013年(20)

2012年(129)

分类: LINUX

2012-06-15 20:24:36

在子目录中grep 如果想在当前目录及其子目录下查找文件中特定的字符串,可以使用一下命令:
find . -name "*" | xargs grep -n "string"
find . -print | xargs grep "string"
xargs是说明可以使用很长的命令行参数。
其中:
-n:显示文件中匹配string的行号
grep -nR "string" .

在目录中查找特定文件含有的字符串
find ./frameworks/base -name Android.mk -exec grep -l libandroid.servers {} \;
在当前目录下(Android Project)的frameworks\base子目录下查找所有Android.mk文件,并在Android.mk文件中查找libandroid.servers字符串,如果找到通过grep -l选项则打印此Android.mk文件所在的路径
其中,
-exec 参数后面跟的是 command命令,注意点如下:
command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
'{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 '\'在分号前明确说明

通过find查找文件,并将找到的文件拷贝至指定目录
find . -name "*dma*" -exec cp {} dst_dir \;
find . -name "*dma*" | xargs cp {} dst_dir
find . -name "*dma*" -exec scp {} 用户名@主机ip:dst_dir \; 

用sed命令可以批量替换多个文件中的字符串
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
sed -i "s/oldString/newString/g" `grep oldString -rl /path`


在shell中使用find结合grep进行文件的替换
find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \; 
在当前目录下(包括子目录)查找包含str1的文件,自动替换成str2,并且生成源文件的bak文件
阅读(806) | 评论(0) | 转发(0) |
0

上一篇:xchg作用

下一篇:对bitop.h头文件的分析

给主人留下些什么吧!~~