2021-07-29

grep(Global search Regular Expression and Print out the line)

"Global search" 表示全局搜索

"Regular Expression" 表示正则表达式

所以, grep 是一个可以利用 "正则表达式" 进行 "全局搜索" 的工具, grep 会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。

不使用正则表达式时也可以使用 grep ,只是当 grep 与正则表达式结合在一起时功能更强大。

grep命令的常用格式为:grep  [选项]  ”模式“  [文件]
grep家族总共有三个:grep,egrep,fgrep。
常用选项:
  -E :开启扩展(Extend)的正则表达式。
  -i :忽略大小写(ignore case)。
  -v :反选(invert),只打印没有匹配的,而匹配的反而不打印。
  -n :显示行号
  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有 liker,而我搜寻的只是 like,就可以使用 -w 选项来避免匹配 liker
  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用 -cv 选项是显示有多少行没有被匹配到。
  -o :只显示被模式匹配到的字符串。
  --color :将匹配到的内容以颜色高亮显示。
  -A n:显示匹配到的字符串所在的行及其后 n 行,after
  -B n:显示匹配到的字符串所在的行及其前 n 行,before
  -C n:显示匹配到的字符串所在的行及其前后各 n 行,context
# 测试文件
vi test.txt
man's youth is a wonderful thing: it is so full of anguish and of magic
and he never comes to know it as it is,until it has gone from him forever.
It is the thing he cannot bear to lose,
it is the thing whose passing he watches with infinite sorrow and regret,
it is the thing whose loss with a sad and secret joy,
the thing he would never willingly relive again,could it be restored to him by any magic.

1. 简单的字符串查询

# 查询包含 magic 的句子
grep magic test.txt # 使用 -n 选项,显示所属的行
grep -n magic test.txt # 使用 -w 选项,查询完整的单词
grep -nw is test.txt # 使用 -i 选项,忽略大小写
grep -n -i it test.txt # 使用 -c 选项,统计该单词出现的行数
grep -c it test.txt # 使用 -ci 选项,统计该单词忽略大小写情况下出现的行数
grep -ci it test.txt

2. 结合正则表达式

# 查询包含 magic 或 thing 的句子
grep -E "magic|thing" test.txt # 查询包含 i 以及后免的任意字符
grep -E 'i.*' test.txt

# 使用 -v 选项,排除选择的字符
# 查询没有 it 的行,并显示行号
grep -vn 'it' test.txt

# 使用 -A[num] , num可以是一个数字,查询选中句子的后 num 行
grep -A1 "It is the thing he cannot bear to lose," test.txt # 使用 -B[num] , num可以是一个数字,查询选中句子的前 num 行
grep -B1 "It is the thing he cannot bear to lose," test.txt # 使用 -C[num] , num可以是一个数字,查询选中句子的上下 num 行
grep -C1 "It is the thing he cannot bear to lose," test.txt
grep -C2 "It is the thing he cannot bear to lose," test.txt

该文参考了博主 flyor 的博客,地址为 https://www.cnblogs.com/flyor/p/6411140.html 。

centos7 grep 的使用的更多相关文章

  1. Centos7 grep命令简介

    grep 是一个最初用于 Unix 操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. grep 可根据提供的 ...

  2. centos7.4应用之KVM

    最小安装系统: 参考博客:https://www.cnblogs.com/chenjiahe/p/5911965.html 辅助命令 yum install make bison flex autom ...

  3. 在CentOS7系统上安装MySQL数据库

    1.下载安装MySQL官方repo文件 下载MySQL的官方repo文件 [root@centos7 ~]# wget -i -c http://dev.mysql.com/get/mysql57-c ...

  4. grep,cut,wc,sort,diff,uniq,patch命令

    文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep: 文本过滤工具(模式: pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G, ...

  5. 第六天、用户、组、权限、grep

    第六天.用户.组.权限.grep 权限总结表 操作 源目录权限 文件权限 目标目录权限 rm删文件 wx - - mv改名 wx - - mv移动文件 wx r wx cp复制文件 x r wx &g ...

  6. Linux正则表达式练习

    练习一 1.生成30位的随机口令 [root@centos7 ~]#cat /dev/urandom | tr -dc "[:alnum:]" | head -c30 RJL5qc ...

  7. Linux用户管理及用户信息查询

    useradd 创建用户,更改用户信息 1.工作原理流程 使用此命令式,若不加任何参数选项,直接跟用户名,那么系统会首先读取/etc/login.defs(用户定义文件)和/etc/default/u ...

  8. 从VirtualBox虚拟主机访问NAT客户机的方法

    转自:http://www.jb51.net/os/other/352995.html VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络.当虚拟机启用NAT后,VirtualB ...

  9. 编译Nginx, 并使用自签证书实现https访问

    1. 编译安装nginx1.8.1 [root@centos7 nginx-1.8.1]# ./configure --prefix=/usr/local/nginx.1.8.1 --with-htt ...

随机推荐

  1. 微信小程序 -- scroll view

    效果图:横向滚动和纵向滚动 scroll view使用方法文档,前面已经介绍查找文档方法,此处不再赘述 一.横向滚动 创建一个页面scroll-nav 然后,在.wxml文件中排版 <!--水平 ...

  2. Matplotlib不能显示中文和正负号的问题

    参考链接:https://www.jianshu.com/p/240ea3ae0dc9 在使用matplotlib画饼状图时,遇到了如下问题 UserWarning: findfont: Font f ...

  3. python 之爬虫基本流程

    python 之爬虫基本流程 一 用户获取网络数据的方式: 方式1:浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据 ...

  4. 2019版pycharm永久激活

    链接:https://pan.baidu.com/s/1vY1KBvi2NHIgoN8C2qaFbg 提取码:p4gx 1.下对应版本的jar包,放到pycharm目录的bin目录下2.去C:\Use ...

  5. SLF4J日志桥接的应用

    最近在给公司的测试部门开发一套自动化测试框架,为了是框架产生的测试报告更易于分析,我考虑将每一个用例与运行过程中产生的日志相关联,为了实现这样的效果,首先就需要统一项目的日志输出,那么具体怎么做呢? ...

  6. 最短路径问题 Dijkstra ——Python实现

      # 最短路径算法 Dijkstra # 输入:含权有向图 G=(V,E),V={1,2,3...n} # 输出:G中顶点 1 到各个顶点地最短距离   Dijkstra算法各点权值变化情况: 1 ...

  7. mongodb使用场景及与mysql区别

    MySQL是关系型数据库. 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺 ...

  8. Python实用案例,Python脚本,Python实现自动监测Github项目并打开网页

    往期回顾 Python实现文件自动归类 前言: 今天我们就利用Python脚本实现Github项目的更新,提醒方式是邮箱.直接开整~ 项目地址: https://github.com/kenwoodj ...

  9. DC-4靶机

    仅供个人娱乐 靶机信息 下载地址:http://www.five86.com/downloads/DC-4.zip 一.主机扫描 arp-scan -l nmap -p 1-65535 -A -sV ...

  10. LATEX学习和IEEE Tran模板介绍

    目录 软件的选择 IEEE 模板下载 模板正文 图 表格 公式 算法 参考文献 Latex学习网站:http://www.latexstudio.net/page/tex-documents/ IEE ...