Linux-搜索命令(二)

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

在Windows里面搜索一般是基于文件名字的搜索,但是在Linux里面搜索主要分两种,一种是以文件&目录为搜索为目的的搜索,主要涉及到的命令是findlocate。另外一种是以文件里面的内容为目的的搜索,涉及到的命令就是grepegrep

主要从以下两个方面来介绍:

1.文件搜索

2.内容搜索(本章节)

grep 是一个强大的命令行工具,用于在文件中搜索指定的文本模式。它的名字来源于 Unix 系统中的一个原始命令 "globally search a regular expression and print",它可以处理文本文件、输入流以及其他命令的输出。

egrepgrep 命令的一个变种,通常在许多 Unix系统上也可以用 grep -E 来代替。它与普通的 grep 命令有所不同,主要在于支持扩展的正则表达式语法。

基本用法:

grep pattern file
  • pattern 是要搜索的文本模式,可以是普通文本或正则表达式。

  • file 是要搜索的文件名。

常用选项:

  • -i:忽略大小写

grep -i pattern file

这将忽略大小写,不区分大小写的搜索匹配模式。

  • -r--recursive:递归搜索子目录

grep -r pattern directory

这将在指定目录及其子目录中递归搜索匹配模式。

  • -n:显示行号

grep -n pattern file

这会显示匹配模式的行号。

  • -v:反向匹配

grep -v pattern file

这会显示不包含匹配模式的行。

  • -E:支持扩展正则表达式

grep -E 'pattern1|pattern2' file

这允许使用扩展正则表达式进行多模式搜索。

  • -o:仅显示匹配的文本

grep -o pattern file

这会仅显示匹配模式的部分文本内容。

  • -l:仅显示包含匹配的文件名

grep -l pattern *

这会列出包含匹配模式的文件名,而不是具体的匹配行。

示例:

1.搜索文件中包含单词"example"的行:

grep example file.txt  

2.在当前目录及其子目录中搜索包含 "error" 的文件:

grep -r error .

3.搜索文件中不包含 "warning" 的行:

grep -v warning file.txt

4.使用正则表达式搜索包含 ^[0-9] 开头的行(以数字开头的行):

grep '^[0-9]' file.txt

5.递归搜索多个模式:

grep -rE 'pattern1|pattern2' directory

6.搜索对象的上下文:

grep -A5 examplie file.text   //匹配examplie及后5行,包括自己grep -B5 examplie file.text    //匹配examplie及前5行,包括自己grep -C5 examplie file.text   //匹配examplie上下5行,包括自己

总结:

在日常运维中,grep也是我们最常用的命令之一,不仅可以用于文本搜索,也可以用于其他搜索,包括进程,端口等,用于接收管道后的过滤。

grep最重要的使用方法就是作为管道"|"的输出来进行过滤。

ps -ef |grep xxx            //查看xxx进程是否存在netstat -lnp |grep xxx      //查看xxx端口是否监听cat xxx.txt | grep xxx      //通过管道来过滤,但是对应大文件要慎重tail -f xxx.txt |grep xxx   //用于过滤及时日志,来分析业务情况

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值