grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式
正规表达式本质上是一种"表示方法", 只要工具程序支持这种表示方法,那么该工具就可以使用正则表达式处理字符串。 例如 vi, grep, awk ,sed 等等工具,因为她们有支持正规表示法, 所以,这些工具就可以使用正规表示法的特殊字节来进行字串的处理。但例如 cp, ls 等命令并未支持正规表示法, 所以就只能使用 bash 自己本身的wildcards(通配符)。通配符与正则表达式是两个完全不同的东西,通配符只是bash提供的一个功能,正则表达式是一种字符串处理的表达方式。千万不要将而这混淆。
正则表达式在表示字符串时,依据不同的严谨程度可以分为基础正则表达式和扩展正则表达式。
grep在查找字符串的时候,是以整行为单位进行数据选取的。举例:一个文件有10行,其中2行包含匹配关键字,那么grep只输出命中的那两行,其他全部丢掉。
--color=auto 将匹配到的关键字高亮。一般来说这个不用我们指定,因为Linux distribution已经为我们alias指定好了。
-n:显示命中关键字在原文件中的行数
-v显示非关键字的那些行
[root@51cto ~]# cat uniqtest -n 1 wang student 23 2 wang student 23 3 han teacher 38 4 liu teacher 29 5 zhang student 23 6 wang student 23 [root@51cto ~]# grep "wang" uniqtest -v han teacher 38 liu teacher 29 zhang student 23