linux命令之grep命令
来源:互联网 发布:个人业务网站php源码 编辑:程序博客网 时间:2024/06/08 12:31
grep命令是一个十分强大的文本搜索命令,它全面的搜索满足正则表达式文本内容并且可
以把对应的行以及行号打印出来
基本格式:
grep[选项][模式][文件或者目录]
[模式]是什么呢?模式就是要搜索的文本内容的正则表达式,当然也可以时最简单的最直接的文本。输出是什么呢,
一般的输出的是满足有所要搜索内容的所有行,但是根据[选项]内容不同,
也可以之输出文件名或者满足行数。
[选项]:
-n列出所有匹配的行,输出的行带上行标
-l只输出文件名
-r递归搜索,不仅搜当前目录,还有子目录
-w匹配整个词
-v:反向选择,亦即显示出没有'搜寻字符串'内容的那一行
-i:不区分大小写
此外--color=auto可以给出满足模式的文本上色。
[例子]
接下来,赶紧上例子啦!
为了方便看,蓝色的表示模式,红色的表示结果
1.查看size.c文件中包含return或者return0的行
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep-nreturnsize.c
5:return0;
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -n"return 0"size.c
5:return0;
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -nreturn 0 size.c
grep:0:没有那个文件或目录
size.c:5: return0;
注意:当模式中有空格的时候一定要打””引起来,不然会出现没有那个文件或目录的错误
2.查看目录下包含return0的文件,只输出文件名
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep-l"return
0"/home/melody/workspace/
grep:/home/melody/workspace/:是一个目录
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep-r-l "return
0"/home/melody/workspace/
/home/melody/workspace/lookhb.c
/home/melody/workspace/size.c
/home/melody/workspace/main.c
/home/melody/workspace/mainl.c
注意这个例子中,当为目录时,一定要加-r递归搜索
3.查看目录下包含return0的文件,输出文件名加相应的行:
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -r "return 0" /home/melody/workspace/
/home/melody/workspace/lookhb.c: return0;
/home/melody/workspace/size.c: return0;
/home/melody/workspace/main.c: return0;
/home/melody/workspace/mainl.c: return0;
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -r "return 0" /home/melody/workspace/ -n
/home/melody/workspace/lookhb.c:5: return0;
/home/melody/workspace/size.c:5:return0;
/home/melody/workspace/main.c:17: return0;
/home/melody/workspace/mainl.c:15: return0;
接下来,上一些有正则表达式例子
总结一下:限定行首(^)/行尾字符($),限定一些特定的字符”..[..]..”,精确匹配(/),匹配重复字符(“*”)
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -n ^
i/home/melody/workspace/size.c
2:intmain()
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -n ^ /home/melody/workspace/size.c
1:#include<stdio.h>
2:intmain()
3:{
4: printf("%d\n",sizeof("abc"));
5: return0;
6:}
^i可以就这样写,也可以加单引号,注意是单引号!!
匹配特定的字符[]中满足其中之一就可以了。eg.
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grepp[ea]tsize.c -n
4://pat;
5: //pet;
类比:
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep[^A]size.c--color=always
#include<stdio.h>
intmain()
{
ABCDS;
//KO //pat;
//pet;
//hello;
printf("%d\n",sizeof("abc"));
return0;
}
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep^Asize.c--color=always
ABCDS;
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep //.../ size.c --color=always
//KO //pat;
//.../表示的是什么意思呢?就是以//字符开始的中间有三个其他任意字符(三个.),后面还接了个/的。
精确匹配:
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -n 'ab\{2\}'size.c
8:aaaaaaaaaabababababababbabaababa;
注意,一定要加引号。
melody@melody-HP-Compaq-dc7900-Small-Form-Factor:~/workspace$grep -n ab* size.c -i
2:intmain()
4:-----ABCDS;
5:--haha;
6:ABabaaaab;
7:ab;
8:aaaaaaaaaabababababababbabaababa;
9://KO //pat;
12: printf("%d\n",sizeof("abc"));
ab*-i就是指的是以a开头,出现0次或者多次b的字符串,不区分大小写!
- Linux命令之<grep命令>
- linux命令之grep命令
- linux命令之grep
- linux 命令之grep
- linux命令之grep
- linux命令之grep
- linux之 grep命令
- linux命令之grep
- linux之grep命令
- linux之grep命令
- Linux命令之grep
- linux命令之grep
- Linux之grep命令
- linux 命令之grep
- Linux 命令之grep
- linux命令之grep
- linux命令之grep
- Linux之grep命令
- 微信扫描打开APP下载链接提示代码优化
- [HBase] LSM树 VS B+树
- 毕业设计第二十天
- Java——构造方法私有化2
- ubuntu技巧--sudo apt-get update错误
- linux命令之grep命令
- 1064. Complete Binary Search Tree (30)
- UVALive 3938 一道被我WA了的线段树
- μCOS_II移植到STM32F103VC过程
- VB.NET 的 DES 加密与解密(转载于nofort博客)
- Collections.sort两种用法
- js的yes/no确认框
- 「每周review」C++ Prinmer Chapter2
- 修改ECSHOP结算中心“立即使用支付宝支付”按钮样式