前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux常用命令 grep

linux常用命令 grep

原创
作者头像
艳艳代码杂货店
修改2021-10-29 14:09:01
6200
修改2021-10-29 14:09:01
举报

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

一般格式 grep [选项] 基本正则式 [文件]

选项:-c 不输出内容只统计匹配行数

grep -c "123" filename 相当于 grep "123" filename | wc -l

-i 不区分大小写

grep -i "ok" filename 匹配包含ok,Ok,oK,OK的所有行

-h 查询多文件时不显示文件名

grep -h "123" *.txt 不加-h时会在每一行前显示该行所在文件名

-l 查询多文件是只显示包含匹配字符的文件名

-n 查询匹配行及行号

-v 显示不包含匹配文本的所有行

-? 同时显示匹配行上下的?行

如:grep -2 "123" filename同时显示匹配行的上下2行。

正则:^ 锚定行的开始 

如:'^grep'匹配所有以grep开头的行。 

$ 锚定行的结束 

如:'grep$'匹配所有以grep结尾的行。 

. 匹配一个非换行符的字符

如:'gr.p'匹配gr后接一个任意字符,然后是p。 

匹配零个或多个先前字符 

如:'agrep'匹配所有一个或多个字符a后紧跟grep的行。 

.*一起用代表任意字符。

[] 匹配一个指定范围内的字符

如'[Gg]rep'匹配Grep和grep。 

[^] 匹配一个不在指定范围内的字符

如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。 

(..)标记匹配字符

如'(love)',love被标记为1。 

\< 锚定单词的开始

如:'\<grep'匹配包含以grep开头的单词的行。 

\> 锚定单词的结束

如'grep\>'匹配包含以grep结尾的单词的行。

\b 单词锁定符

如: '\bgrep\b'只匹配grep。 

特殊事项:

1.引号的使用首先说明引号的作用,在shell中使用grep一般要打引号,例如:"grep" 这样做,一是防止被误解为shell命令,二是可以查找多个单词的字符串。如,"aaa  bbb"。如果没引号,将会把bbb误认为文件。

一般在grep中输入字符串参数是打双引号,如:$mystr="aaa";grep "$mystr" file,这样$mystr会先被替换成aaa,执行操作是grep "aaa" file。而在单引号中,$mystr不被识别,因此,单引号一般用在正则表达式的匹配上,这样可防止于grep中使用的模式与shell命令中的特殊方 式混淆。

2.egrep和 grep -E的元字符扩展

egrep是扩展的grep,支持基本正则和扩展正则,等同于grep -E。扩展集如下:

+ 匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串。

a|b|c 匹配a或b或c。

如:grep|sed匹配grep或sed

( ) 分组符号

如:love(able|rs)匹配loveable或lovers。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档