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日

相关推荐

  • SVN版本回退

    SVN是一款版本控制工具。相对于GitHub而言,SVN在使用上更为简化些,本篇文章重点为大家讲解一下SVN版本回退。 当我们想放弃对文件的修改,可以使用 SVN revert 命…

    Linux系统 3小时前
  • Linux命令及脚本中使用的小技巧

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

    Linux系统 2025年6月11日
  • 讲解一下C 语言布尔类型

    C语言就没有真正的布尔类型,布尔类型实际上是用数值型(int,float,char等)表示的,不能自动打印为true或者false,只能自己写代码实现。 C 语言标准(C89) 没…

    Linux系统 2025年6月8日
  • Docker中安装Redmine具体步骤

    Redmine是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理,下面为大家分享一下Docker中安装Redmine…

    Linux系统 2025年6月12日
  • 详解Sass 变量

    Sass(Syntactically Awesome StyleSheets)是css的一个扩展开发工具,它允许你使用变量、条件语句等,使开发更简单可维护。 变量用于存储一些信息,…

    Linux系统 2025年6月10日
  • Linux终端中使用Nmcli命令连接WiFi具体方法

    nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效,本篇文章重点为大家讲解一下在Linux终端中使用Nm…

    Linux系统 2025年6月13日
  • 如何备份一个磁盘分区

    通常你可能会把数据放在一个分区上,有时候可能需要对该设备或者上面的一个分区进行备份。树莓派用户为了可引导 SD 卡当然有这个需求。其它小体积计算机的用户也会发现这非常有用。有时候设…

    Linux系统 2025年6月8日
  • Linux Tee 命令使用实例

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。在执行Linux命令时,我们既想把输出保存到文件中,又想在屏幕上看到输出内容,那么可以用到tee…

    Linux系统 2025年6月8日
  • 如何在 Linux 上用 Fail2Ban 保护服务器免受暴力攻击

    linux 管理员的一个重要任务是保护服务器免受非法攻击或访问。 默认情况下,Linux 系统带有配置良好的防火墙,比如iptables、Uncomplicated Firewal…

    Linux系统 5天前
  • SELinux策略规则查看方法(seinfo和sesearch)详解

    我们知道,当前 SELinux 的默认策略是 targeted,那么这个策略中到底包含有多少个规则呢?使用 seinfo 命令即可查询。命令如下: [root@localhost …

    Linux系统 2025年6月8日

发表回复

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