技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

linux中grep命令的使用

来源:技术员联盟┆发布时间:2018-07-19 18:23┆点击:

  linux中grep命令的使用

  grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。

  grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。ps -ef | grep httpd :检查httpd进程是否存在

  ps -aux |awk '$2~/32651/'过滤可以用ps -aux |awk '$2!~/32651/' grep 2567会显示出现2567这个字符串的所有行 ; | 这是一个管道,把输出的结果当作输入送给下一个命令。

  awk和sed比grep强大多了,在讲unix的书上grep一般是略带提的,但awk和sed就会着重讲。

  查找etc目录下含有字符串“wl0505”的文件:find /etc -name "*" |xargs grep "wl0505" > ~/thefile

  grep -rn wl0505 /etc/*

  find / -name "*.*" | xargs grep "wl0505" >>/home/filename*.*是文件名和扩展名,>>是把结果重定向到后面路径的文件中去,不在终端上显示了。

  "*" 表示匹配带*这个字符的行* 表示 找出带有*的文件 并打印行 find ./ -maxdepth 1 | grep "*"find ./ -maxdepth 1 | grep *这两个命令才是等价的 对于 grep来讲 他只接受正则表达式匹配 * ? 这些字符需要加转义符

  linux下的find与grep命令的功能不同。find 命令用于从目录树中查找与搜索条件匹配的文件;grep 命令用于查找输入流中包含模板文本的行。find 命令常结合grep命令使用, 以对搜索结果做进一步的筛选

  匹配目录/cpl下所有(递归查找)以'#'开头的文件:

  OCS101:~/cpl # grep -r '^#' .

  ./fk.c:#include

  ./fk.c:#include

  ./flower2.c:#include

  ./flower2.c:#include

  ./recursive_flower.c:#include

  ./recursive_flower.c:#include

  ./recursive_flower.c:#include

  ./recursive_flower.c:#define m 8

  ./flower.c:#include

  ./flower.c:#include

  ./flower.c:#include

  ./flower.c:#define N 1e8

  匹配目录/cpl下所有(递归查找)以'}'结尾的文件:

  OCS101:~/cpl # grep -r '^}' .

  ./fk.c:}

  ./fk.c:}

  ./fk.c:}

  ./Narcissus.java:}

  ./flower2.c:}

  ./flower2.c:}

  ./flower2.c:}

  ./recursive_flower.c:}

  ./recursive_flower.c:}

  ./recursive_flower.c:}

  ./recursive_flower.c:}

  ./flower.c:}

  ./flower.c:}

  ./flower.c:}

  ./flower.c:}

  ./flower.c:}

  表达符集

  ^

  锚定行的开始 如:'^grep'匹配所有以grep开头的行。

  $

  锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

  .

  匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。

  *

  匹配零个或多个先前字符 如:' *grep' (注意*前有空格)匹配所有零个或多个空格后紧跟grep的行,需要用egrep 或者grep带上 -E 选项。 .*一起用代表任意字符。

  []

  匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

  [^]

  匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。

  (..)

  标记匹配字符,如'(love)',love被标记为1。

  <

  锚定单词的开始,如:'

  >

  锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。

  x{m}

  重复字符x,m次,如:'o{5}'匹配包含5个o的行。

  x{m,}

  重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。

  x{m,n}

  重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。

  w

  匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

  W

  w的反置形式,匹配一个或多个非单词字符,如点号句号等。

  b

  单词锁定符,如: 'bgrepb'只匹配grep。[1]用于egrep和 grep -E的元字符扩展集

  +

  匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

  ?

  匹配零个或一个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。

  a|b|c

  匹配a或b或c。如:grep|sed匹配grep或sed

  ()

  分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。

  x{m},x{m,},x{m,n}

  作用同x{m},x{m,},x{m,n}

  POSIX字符类