1 概念:
grep ---> global reserch by expression
根据模式搜索文本,并将符合模式的文本行显示出来。
2 特点:
做部分匹配的,显示的是符合条件的整行数据,重点展示的是匹配到的那个字段。
3 写法:
grep [options] PATTERN [FILE...] -i: 忽略大小写 --color 匹配到的带颜色展示 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串
匹配次数(贪婪模式):
匹配其前面的字符任意次 ----> 一定要记住,*表示匹配的是前面的字符 比如 a*b表示匹配 前面字符a为任意多次的单词 eg: [root@chinadaas109 zhoumingtest]# cat test ab aab abb acb [root@chinadaas109 zhoumingtest]# grep --color -o 'a*b' test 表示查找b前面出现字符a为0或者多次的单词,并将符合条件的单词打印出来 ab aab ab b b
4 Pattern介绍, 正则表达式:
正则表达式:REGular EXPression, REGEXP 正则里面有一些元字符,这些元字符本身没有含义,
只是表示一些统配的含义。
元字符:
.: 匹配任意单个字符 []: 匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:] .*: 任意长度的任意字符 \?: 匹配其前面的字符1次或0次, eg: # grep --color -o 'a\?b' test \{m,n\}:匹配其前面的字符至少m次,至多n次 \{1,\}: 至少一次 \{0,3\}: 至少0次,最多3次
位置锚定:
位置锚定: ^: 锚定行首,此字符后面的任意内容必须出现在行首 $: 锚定行尾,此字符前面的任意内容必须出现在行尾 ^$: 空白行 应用: 查询inittab文件内的空白行 # grep '^$' /etc/inittab | wc -l 0 查询inittab文件内末尾为数字的行 # grep '[[:digit:]]$' /etc/inittab # 5 - X11 \<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现 \>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现 eg: \<root\> 表示匹配整行中只有root这个单词的行 查询以root为行尾的行 # cat test ab aab abb acb rooter the user is root # grep 'root\>' test the user is root
分组:
分组: \(\) \(ab\)* ---> 分组的目的主要是为了让后面能在继续用到前面的内容 后向引用(前面出现什么,后面就能引用到什么) \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容 \2: 引用第二个左括号以及与之对应的右括号所包括的所有内容 \3: 引用第三个左括号以及与之对应的右括号所包括的所有内容 # cat test he love his lover she like her lover he like his liker she love her liker # grep '\(l..e\).*\1' test ---> 反向引用的案例 he love his lover he like his liker
案例:
1 判断当前系统上是否有用户的默认shell为bash; 如果有,就显示有多少个这类用户;否则,就显示没有这类用户; total = `grep "\<bash$" /etc/passwd &> /dev/null | wc -l` if [ $total -eq 0 ]; then echo "no such bash user" else echo "the bash users num is $total" 2 给定一个文件,比如/etc/inittab 判断这个文件中是否有空白行; 如果有,则显示其空白行数;否则,显示没有空白行。 #!/bin/bash A=`grep '^$' /etc/inittab | wc -l` if [ $A -gt 0 ]; then echo "$A" else echo "no blank" fi
相关推荐
grep-2.20-3.el7.x86_64.rpm
grep-2.5.4-setup windows的grep最新版,安装后可在windows操作系统上像在linux上使用grep命令。
linux-grep-命令-详解
开源项目-bettinson-grep-webpage.zip,I'm a complete go beginner and I wrote a simple grep function for web pages in go. How does this look?
该资源为Linux- 系统随你玩之--grep查找文件内容 博文中用到的fyydlz.txt Linux- 系统随你玩之--grep查找文件内容-fyydlz.zip
离线安装包,亲测可用
grep-2.5.4-setup.exe for windows
grep "[5-8][6-9][0-3]" myfile 匹配myfile中第一位为5|6|7|8,第二位6|7|8|9,第三位为0|1|2|3的三个字符的行 ;grep "4\{2,4\}" myfile 匹配myfile中含有44,444或44444的行 grep "\?" myfile匹配myfile中含有...
grep和vim for windows
首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法, ...vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大。
idea 最新 grep-console 插件,走过路过不要错过,下载不易
开源项目-schollz-go-agrep.zip,go-agrep - really fast fuzzy string searching using a precomputed database
Linux教程-linux-文本处理-grep.docx
VIM编辑器-head命令-trail命令-find命令-grep命令的介绍和说明。
前端开源库-fs-grepfs grep,文件grep的内容
unite-grep-vcs 版本:0.1.0支持:Vim 7.3及更高版本(让我知道是否存在问题) 注意grep/git来源现在被移到了从承诺。 unite-grep-vcs是'git grep'或'hg grep'的源软件包插件。 有一个类似的名为插件。 和不同的...
grep命令配合正则表达式
扩充windows下cmd的命令行,完全兼容linux上命令行模式;下载完毕后,解压;然后配置到环境变量中
phi-grep.el Elisp実装の编集可能な再帰grep ... phi-grep-dird-dwim 自动选择以上其中一项 在phi-grep结果缓冲区中,您还可以执行递归grep。 phi-grep-递归 当前结果文件中的grep 您可以使用[Cg]或[RET]
鉴于LSA及LNS中分布地存在着大量关于grep的命令,却又未进行详细讲解,引起不少迷惘;故而在此将其用法完整给出,仅供喜好者把玩