grep常用命令整理

本文详细介绍了grep命令的使用,包括grep家族、工作机制以及一系列常用命令,如搜索单个文件、忽略大小写、匹配正则表达式、查找全匹配、显示上下文行、高亮显示、搜索子目录等,是理解与掌握grep的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep常用命令整理

grep命令简介

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

grep家族

grep家族包括grep、egrep和fgrep:egrep是grep的扩展,支持更多的re元字符;fgrep就是fixed grep或fast grep。

工作机制简要介绍

grep在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

grep常用命令整理

1、从单个文件中查找指定的字符串

grep "this" demo_file

2、从多个文件中查找指定的字符串

grep "this" demo_*

3、查询且忽略大小写

grep -i

4、在文件中匹配正则表达式

基础正则表达式:

1. ?         The preceding item is optional and matched at most once.
2. *         The preceding item will be matched zero or more times.
3. +         The preceding item will be matched one or more times.
4. {n}      The preceding item is matched exactly n times.
5. {n,}     The preceding item is matched n or more times.
6. {,m}    The preceding item is matched at most m times.
7. {n,m}  The preceding item is matched at least n times, but not more than m times.

扩展正则表达式:

‘^‘: 锚定行首

‘$’: 锚定行尾

‘.‘: 匹配任一一个字符

‘*’: 匹配零个或多个先前字符

‘?‘:匹配其前面的字符0次或者1次;

‘+’:匹配其前面的字符1次或者多次;

‘{m}‘:匹配其前面的字符m次(\为转义字符)

‘{m,n}’:匹配其前面的字符至少m次,至多n次

‘[]‘: 匹配一个指定范围内的字符 | ‘[^]’匹配指定范围外的任意单个字符

‘<‘或‘\b’:锚定词首,‘>’或‘\b’:锚定词尾(可用<PATTERN>:匹配完整单词)

‘()’:将多个字符当做一个整体进行处理

后向引用:引用前面的分组括号中的模式所匹配到的字符

分组括号中的模式匹配到的内容或被正则表达式引擎自动记录于内部的变量中:

\1:模式从左侧起,第一个左括号及与之匹配的右括号之间模式匹配到的内容

\2:模式从左侧起,第二个左括号及与之匹配的右括号之间模式匹配到的内容…

扩展正则表达式与正则表达式略有不同:

‘[]’:依旧匹配指定范围内的任意单个字符;但是有很多特殊匹配方式。

[:digit:] 匹配任意单个数字

[:lower:] 匹配任意单个小写字母

[:upper:] 匹配任意单个大写字母

[:alpha:] 匹配任意单个字母

[:alnum:] 匹配任意单个字母或数字

[:punct:] 匹配任意单个符号

[:space:] 匹配单个空格

一些地方取消了转义字符的使用:

‘?‘:匹配其前面的字符0次或者1次;

‘+’:匹配其前面的字符1次或者多次;

‘{m}‘:匹配其前面的字符m次(\为转义字符)

‘{m,n}’:匹配其前面的字符至少m次,至多n次

():将一个或多个字符捆绑在一起,当做一个整体进行处理,反向引用照常使用。

‘|’:或(注:‘C|cat’为C与cat,‘(C|c)at才是Cat与cat’)

5、查找全匹配,不包括子字符串

grep -w

6、用grep -A,-B,-C 来查看after/before/around 行

-A, 显示匹配后N行

-B, 显示匹配前N行

-C, 显示匹配前后N行

7、用GREP_OPTIONS来让查找的项醒目

export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

8、搜索所有的文件及子目录

grep -r

9、过滤匹配项

grep -v

10、计算匹配的数量

grep -c

11、显示匹配的文件名

grep -l

12、只显示匹配的字符串

grep -o

13、显示行数

grep -n

14、显示匹配的字符字节位置

grep -b

15、ps+grep时不抓到自己的进程

ps -ef | grep ab[c]

16、通常grep解决行内匹配问题,跨行建议awk/sed/perl

17、使用扩展的正则表达式

grep -E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值