linux命令之grep命令
2016-03-06 23:16
483 查看
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的字符串,不区分大小写!
以把对应的行以及行号打印出来
基本格式:
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 命令
- Centos 7下解决中文乱码问题
- linux内核分析课程笔记(二)
- 从mykernel来分析linux系统的启动过程
- 基于CentOS7开发之路 --- 第二章 : CentOS 7 配置Java环境变量
- Linux命令学习笔记之一目录与文件基本操作
- Linux - redhat6.4 配置centos6 yum替换
- 学习Linux计划书
- 《Linux内核分析》 操作系统是如何工作的
- linux tail命令的使用方法详解
- linux的redhat版上mysql字符乱码解决方案
- Linux - deepin 15 正式版 启动器打不开
- linux文件的压缩解压缩
- 常见RAID级别原理, Linux中软RAID实现方式详解
- Linux内核分析,完成一个简单的时间片轮转多道程序内核代码
- linux重启fms
- CentOS下MySQL 5.7编译安装
- linux 下 vi学习
- 无人值守自动安装linux系统
- linux内核SPI总线驱动分析(二)(转)