Linux grep基础入门

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 ,则 grep 指令会从标准输入设备读取数据。

基本介绍

grep命令由选项、模式和文件三部分组成,它在一个或多个文件中搜索满足模式的文本行,模式后的所有字符串被看做文件名,文件名可以有多个, 支持通配符写法,搜索的结果被打印到屏幕,不影响原文件的内容。grep命令的选项用于对搜索过程进行补充说明,grep命令的选项及其意义如下表所示。

选项 功能
-i 忽略大小写
-w 匹配单独完整的单词
-I 仅列出符合匹配的文件,而不列出行
-r 递归匹配
-n 列出行并显示行号
-v 反向匹配
-c 显示匹配行数,不显示内容
-f file 从文件file中提取模板作为匹配模式
-E 使用扩展正则表达式
-F 快速匹配,不使用正则表达式
-A n 打印匹配行及其后n行
-B n 打印匹配行及其前n行
-C n 打印匹配行及其前后n行
-o 只显示匹配到的内容
-q 不输出内容,以退出状态表示搜索结果

正则表达式

将带元字符的正则表达式用于grep命令能够更灵活地匹配信息,使用时需要使用单引号将正则表达式引起来,以免发生一些不可预知的错误。

模式 功能
'^h' 查找以h符号开头的行
'^$' 匹配空白行
'^/.../' 匹配以中间含有三个字符的斜线对开头的行
'^/.*/' 匹配以斜线对开头的行,里面可以有任何内容
[:alpha:] 匹配字符
[:digit:] 匹配数字
[:alnum:] 匹配字符或数字
[:word:] 匹配单词字符

实例

  • 统计
    /etc/init.d/functions文件中每个单词出现的次数并排序
grep -Eo '[[:alnum:]_]+' /etc/init.d/functions | sort | uniq -c | sort -nr
  • 查找两个文件中重复的行
$ cat test1
aa
bb
cc
ddd
eee
$ cat test2
aa
bb
ccc
dd
eee
$ grep -wf test1 test2
aa
bb
eee

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/8889.html

(0)
晴川运维晴川运维
上一篇 2025年6月13日
下一篇 2025年6月13日

相关推荐

  • 非常神器的Linux技术:BPF

    近两年BPF技术跃然成为了一项热门技术,在KubeCon 2020 Europe会议上有7个关于BPF的技术分享, 而在KubeCon 2020 China会议上也已有了3个关于B…

    Linux系统 2025年6月12日
  • Python中非常重要的5个特性

    Python 是近十年来兴起的编程语言,并且被证明是一种非常强大的语言。我用 Python 构建了很多应用程序,从交互式地图到区块链。 Python 是近十年来兴起的编程语言,并且…

    Linux系统 2025年6月14日
  • Linux下使用 Docker托管 .NET Core

    .NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Appli…

    Linux系统 2025年6月13日
  • 详解shell if 判断

    UNIX Shell 里面比较字符写法 -eq 等于; -ne 不等于; -gt 大于; -lt 小于 ; -le 小于等于; -ge 大于等于; -z 空串; -n 非空串; =…

    Linux系统 2025年7月9日
  • Linux命令及脚本中使用的小技巧

    本篇文章重点为大家讲解一下Linux命令及脚本中使用的小技巧,有需要的小伙伴可以参考一下。 实例1 创建一个别名,删除原始文件,同时在用户的home目录下backup中保存副本。 …

    Linux系统 2025年6月11日
  • Linux下使用free命令查看内存使用情况

    free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区,下面为大家详细讲解一下 free命令使用实例。 显示系统内存 不带任何选项运行 free …

    Linux系统 2025年6月8日
  • Linux lsblk命令实例

    lsblk命令用来查看block设备的信息.主要应用场景: 获取wwnid,获取块设备列表,获取块设备类型(ssd,hdd),获取块设备的size等信息。 系统环境 Centos7…

    Linux系统 2025年6月11日
  • Mariadb中聚合函数和分组函数具体使用方法

    聚合函数能对集合中的一组数据进行计算,并返回单个计算结果,分组函数通过一定的规则将一个数据集划分为若干个小的区域,然后针对若干个小区域进行统计汇总,般用于对查询结果分组统计,常与聚…

    Linux系统 2025年6月13日
  • 通过sestatus命令查看SELinux的当前状态

    sestatus命令用于查看系统上正在运行的SELinux的当前状态。本文讲述sestatus命令输出详细说明,在sestatus中显示所选对象的安全上下文,显示所有的布尔值 1.…

    Linux系统 2025年6月4日
  • 讲解一下ES6 Promise用法

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。…

    Linux系统 2025年6月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注