grep及正则表达式
文本查找的需要: grep,egrep,fgrep grep:根据模式,搜索文本,并将符合模式的文本行显示出来。 Pattern:文本字符和正则表达式的元字符组合而成的匹配条件 grep [OPTIONS] PATTERN [FILE...] -i:忽略大小写 --color:匹配高亮颜色 -v:显示没被匹配到的行 -o:只显示被模式匹配到的字符串 正则表达式:GEGular,EXPression,REGEXP 元字符: .:匹配任意单个字符 匹配次数: *:匹配其前面的字符任意次 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 [:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]这个是字符集合 用的时候加双中括号,例如: [[:digit:]] a,b,ab,aab,acb,adb,amnb a*b [root@one ~]# grep a*b test.txt b ab aab acb adb amnb a.*b [root@one ~]# grep 'a.*b' test.txt ab aab acb adb amnb ?:匹配其前面的字符1次或0次 [root@one ~]# grep 'a?b' test.txt b ab aab acb adb amnb {m,n}:匹配其前的字符至少m次,至多n次 {1,}至少一次,多了不限 {0,3}最多3次 [root@one ~]# grep 'a{1,3}b' test.txt ab aab 位置锚定: ^:锚定行首,此字符后面的任意内容必须出现在行首 [root@one ~]# grep '^r..t' /etc/passwd root:x:0:0:root:/root:/bin/bash $:锚定行尾,次字符前面的任意内容必须出现在行尾 [root@one ~]# grep 'b..h$' /etc/passwd root:x:0:0:root:/root:/bin/bash vagrant:x:500:500:vagrant:/home/vagrant:/bin/bash tom:x:501:501::/home/tom:/bin/bash user3:x:2002:1002:User3,be,110,119:/home/user3:/bin/bash user4:x:1003:1003:Tony Blare:/home/blare:/bin/bash user7:x:1006:1006::/home/user7:/bin/bash apache:x:497:497::/home/apache:/bin/bash hadoop:x:2003:2003::/home/hadoop:/bin/bash ^$:空白行 &;:其后面的任意字符必须作为单词首部出现 &;:其前面的任意字符必须作为单词的尾部出现 b放在单词前面或者后面,表示锚定词首或者词尾 分组: () (ab)* 后项引用 1:引用第一个左括号以及与之对应的右括号所包括的所有内容。 2: 3: He love his lover. She like her liker. He like his lover. [root@one ~]# grep '(ab)*' test.txt a b ab aab acb adb amnb (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |