您的位置:首页 > 运维架构 > Linux

Linux查找文件内容的常用命令方法

2010-08-15 10:26 711 查看
学习find和grep命令的使用:
http://baike.baidu.com/view/801452.htm?fr=ala0_1
http://baike.baidu.com/view/1057278.htm
从文件内容查找匹配指定字符串的行:
            $ grep "被查找的字符串" 文件名

从文件内容查找与正则表达式匹配的行:
           $ grep –e “正则表达式” 文件名

查找时不区分大小写:
           $ grep –i "被查找的字符串" 文件名

查找匹配的行数:
           $ grep -c "被查找的字符串" 文件名

从文件内容查找不匹配指定字符串的行:
           $ grep –v "被查找的字符串" 文件名

从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
           find / -type f -name "*.log" | xargs grep "ERROR"
 
附录
正则表达式
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
-?
同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。

-b,--byte-offset
打印匹配行前面打印该行所在的块号码。

-c,--count
只打印匹配的行数,不显示匹配的内容。

-f File,--file=File
从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。

-h,--no-filename
当搜索多个文件时,不显示匹配文件名前缀。

-i,--ignore-case
忽略大小写差别。

-q,--quiet
取消显示,只返回退出状态。0则表示找到了匹配的行。

-l,--files-with-matches
打印匹配模板的文件清单。

-L,--files-without-match
打印不匹配模板的文件清单。

-n,--line-number
在匹配的行前面打印行号。

-s,--silent
不显示关于不存在或者无法读取文件的错误信息。

-v,--revert-match
反检索,只显示不匹配的行。

-w,--word-regexp
如果被/<和/>引用,就把表达式做为一个单词搜索。

-V,--version
显示软件版本信息。
      $ grep ‘test’ d*
      显示所有以d开头的文件中包含 test的行。
      $ grep ‘test’ aa bb cc
      显示在aa,bb,cc文件中匹配test的行。
      $ grep ‘[a-z]/{5/}’ aa
      显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
      假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:
      $ grep magic /usr/src/Linux/Doc/*
默认情况下,’grep’只搜索当前目录
      明确要求搜索子目录:grep -r
      或忽略子目录:grep -d skip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息