06.Linux命令之grep命令

06.Linux命令之grep命令

1、grep是什么?

grep是一个文本过滤器,作用是在文件中查找符合我们要求的内容。

2、命令格式

形式一,从指定的文件中找出匹配pattern的行:

grep [option] pattern [file1,file2,...]

形式二,从管道中找出匹配pattern的行:

cmd | grep [option] pattern

说明:pattern是由正则表达式字符及文本字符所编写的过滤条件。

3、常见选项

选项 含义
-v 在指定文本反向搜索指定内容,打印不包含指定内容的行
-i 在指定文本搜索以指定内容结束的行,指定内容不区分大小写
-n 在指定文本搜索指定内容,若找到,则返回内容行及行号
-r 递归搜索
-E 支持扩展正则表达式
-F 不按正则表达式匹配,按字符串的字面意思匹配
-c 只输出匹配行的数量,不显示具体内容
-o 只显示模式匹配的字符串

4、代码示例

(1)无附加选项

[86god@localhost 桌面]$ grep love t2.txt
I love you
I love you
I love you
I love you

(2)-v 选项,反向匹配:

[86god@localhost 桌面]$ grep -v love t2.txt
I LOVE YOU
I Love You
I LOVE YOU
I Love You
I LOVE YOU
I Love You
I LOVE YOU
I Love You
I l* you

(3)-i 选项,忽略大小写:

[86god@localhost 桌面]$ grep -i "LOVE" t2.txt
I love you
I LOVE YOU
I Love You
I love you
I LOVE YOU
I Love You
I love you
I LOVE YOU
I Love You
I love you
I LOVE YOU
I Love You

(4)-n 选项,显示匹配行的行号:

[86god@localhost 桌面]$ grep -n love t2.txt
1:I love you
4:I love you
7:I love you
10:I love you

(5)-E 支持扩展正则,| 是扩展正则中的特殊含义的符号,代表任意一个匹配(不是管道哦):

[86god@localhost 桌面]$ grep -E 'love|LOVE' t2.txt
I love you
I LOVE YOU
I love you
I LOVE YOU
I love you
I LOVE YOU
I love you
I LOVE YOU

(6)-F 不要按正则来解析,就要字符串本身:

[86god@localhost 桌面]$ grep -F  "l*" t2.txt
I l* you

(7)-c 只显示匹配的行数:

[86god@localhost 桌面]$ grep -c love t2.txt
4

5、总结

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容