grep命令详解

为什么我们使用grep?

Grep是Linux用户用来搜索文本字符串的命令行工具。您可以使用它在文件中搜索某个单词或单词的组合,也可以将其他Linux命令的输出通过管道传输到grep,因此grep可以仅显示您需要查看的输出。

查找字符串

在文件a.txt中查找字符串’Class 1’

$ grep 'Class 1' a.txt

查找多个字符串

您也可以使用grep查找多个单词或字符串。您可以使用-e开关指定多个模式。让我们尝试在文本文档中搜索两个不同的字符串:

$ grep -e 'Class 1' -e Todd Students.txt

注意,我们只需要在包含空格的字符串周围使用引号。

递归搜索

可以将-r开关与grep一起使用,以递归方式搜索目录及其子目录中的所有文件,以查找指定的模式。

$ grep -r pattern /directory/to/search

如果您未指定目录,则grep只会搜索您当前的工作目录。

Grep or条件

您可以通过几种不同的方式对grep使用or条件,但是我们将向您展示一种需要最少击键且最容易记住的方法:

$ grep -E 'string1|string2' filename

或者,从技术上讲,使用egrep的击键次数甚至更少:

$ egrep 'string1|string2' filename

grep或条件忽略大小写默认情况下,grep区分大小写,这意味着您必须精确搜索大写的字符串。您可以通过告诉grep忽略-i开关的情况来避免这种情况。

忽略大小写

默认情况下,grep区分大小写,这意味着您必须精确搜索大写的字符串。通过使用-i开关告诉grep忽略大小写,可以避免这种情况。

  $ grep -i string filename

Grep精确匹配

严格搜索“ apple”而并不会搜索出包含’‘apple’‘的字符串比如’‘aaapple’',可以使用以下命令:

$ grep "\<apple\>" fruits.txt

排除模式

要查看文件的内容,但要从输出中排除模式,可以使用-v开关。

$ grep -v string-to-exclude filename

带行号的Grep

要显示搜索字符串所在的行数,请使用-n开关。

$ grep -n string filename

显示之前和之后的行数

如果需要更多grep输出上下文,可以使用-c开关在指定的搜索字符串前后显示一行:

$ grep -C 1 string filename

对结果排序

将grep的输出传递给sort命令,以按某种顺序对结果进行排序。默认为字母顺序。

$ grep string filename | sort
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值