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日

相关推荐

  • 使用ACL工具备份和恢复Linux的文件权限

    作为一个系统管理 ,我们的首要任务将是保护和未经授权的访问安全的数据。 我们都知道我们设置使用一些像CHMOD,CHOWN,chgrp命令 ……等有用的Linux命令然而,这些缺省…

    Linux系统 2025年6月13日
  • Linux下设置共享文件夹具体方法

    公司和学校机房的电脑都处在同一个局域网,如果两台电脑传输大文件,用U盘或移动硬盘可能不太方便,害怕中毒,这时候最好的方式是建立一个共享文件夹,另一台电脑即可在局域网中访问该共享文件…

    Linux系统 2025年6月8日
  • Linux中mysql定时备份脚本

    在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份,本篇文章重点为大家讲解一下Linux中mysql定时备份脚本。 1. 创建备份脚本 备份脚本: #!/bin…

    Linux系统 2025年6月4日
  • 安装Clear Linux详细步骤

    Clear Linux是一份最小主义发行,主要设计理念在于性能和云应用环境。该操作系统以整体方式升级,而不是以一个个软件包的形式。额外的软件包(连同关联的依赖包)可以加入到系统中来…

    Linux系统 2025年6月8日
  • Linux中使用Cream提高 Vim 的用户友好性

    Cream 附加包通过把一个更加熟悉的“面孔”置于 Vim 文本编辑器之上,同时保留 Vim 的功能,使其更加容易使用。 当我把 Cream 介绍给他们以后,他们的失望就变成了满意…

    Linux系统 2025年6月8日
  • zabbix监控redis内存具体方法

    本篇提到的监控环境是有条件的,即默认单机只运行一个redis实例,且默认运行的端口是6379(也可以是其他端口,需要通过sed -i ‘s/6379/你修改的端口/g’ xml模板…

    Linux系统 2025年6月29日
  • 详解Netstat命令使用实例

    Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UD…

    Linux系统 2025年9月22日
  • Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解

    通过前面的学习我们知道,linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器。 我们首选的文本编辑器是 Vim(至于为什么,可查看《V…

    Linux系统 2025年9月20日
  • 讲解一下ES6 Class使用方法

    ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 基本上,ES6 的class可以看作只是一个语法糖,它的绝…

    Linux系统 2025年9月19日
  • 使用GitHub搭建专属的服务器

    现在固定公网IP资源稀缺,虽然说IPv6已经开始使用,但是用的人并不多,大部分用的都是IPv4,想要搞一个自己网站,首先就是需要一个固定的公网IP,但是每年却需要缴纳不少的mone…

    Linux系统 2025年6月8日

发表回复

登录后才能评论