热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

分享LinuxGrep高级用户指南

同时搜索多个单词通常,grep的用法是这样的:greppattern

同时搜索多个单词

通常,grep的用法是这样的:

grep 'pattern' filename

其中'pattern'是任何给定的模式或匹配的正则表达式。 但是,假设您有一个错误日志文件并正在执行例行维护。 您希望检查日志文件中是否存在跨越各种源的某些关键字。 通常,您必须为每个短语使用单独的grep表达式。

但是,我们可以使用“-E”参数轻松使用正则表达式。 首先,我们有一个名为“linuxidc-com”的文件,其中包含以下内容:

假设我们要在此文件中搜索以下两个短语:

linuxidc

linuxmi

grep -Ew 'linuxidc|linuxmi' linuxidc-com

有两个标志:

1.-E表示我们正在使用扩展正则表达式

2.-w意味着我们只想匹配整个单词

为了使它更容易,我们可以将“grep -E”替换为“egrep”。 所以上面的命令变成:

egrep -w 'linuxidc|linuxmi' linuxidc-com

这里是输出:

我们可以根据需要匹配尽可能多的单词。如果你想删除“单词”的要求,而只是想要一个直接的字符串匹配,那么你可以删除“w”参数。

搜索整个目录以查找匹配项并显示文件名

我们通常认为grep搜索文件或来自另一个命令的特定输出。但是,我们也可以使用它同时搜索整个文件目录。比如说,你有一堆分散在系统周围的日志文件。毕竟,许多软件包都有自己的日志文件位置。为了方便您,您可以创建一个新文件夹,其中包含指向您感兴趣的所有各种日志文件的符号链接。现在,您可以使用“-R”命令与grep一起搜索所有这些内容。首都“R”告诉grep包含符号链接。小“r”忽略默认情况下在命令行中找不到的符号链接。

例如,在以下示例中,我们在当前目录中搜索字符串:

grep -r linuxidc .

末尾的点( .)表示当前目录。 我们得到以下输出:

您可以在下面看到,它还会以递归方式搜索另一个模式匹配:

这对于同时搜索一堆文件非常有用。 输出还会显示包含匹配字符串的文件的名称! 我个人喜欢这个带有“-R”的解决方案,可以同时搜索一组符号链接,以节省时间。

计算匹配行数

有时您想知道某个关键字出现在grep中的次数。 例如,如果您在网站文件中搜索某个蜘蛛,则需要计算包含特定用户代理的行数。为此,我们只需添加“-c”参数即可。 请记住,这会删除grep的常规输出,并且不再显示单个匹配项。 例如,没有“-c”参数:

grep rr linuxidc-com

我们得到一个简单的事件列表。 加入“-c”:

grep -c rr linuxidc-com

我们得到了行数:如您所见,它不再显示每个事件。

Grep是一个非常强大的工具,它的功能多年来一直在增加。 我们可以创建复杂的正则表达式,甚至可以创建一个表达式来格式化文件的输出,使其更易于阅读。 这些高级grep使用示例将让您体验可能的内容,并希望您自己深入研究手册!

如果您喜欢高级grep命令的这篇文章,请通过社交媒体网络与您的朋友分享。 如果您对本教程有任何疑问,请在下面写下评论。 谢谢!


推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
author-avatar
epa4316380
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有