1. grep语法及其参数说明

  grep是文本搜索工具,能根据用户指定的'PATTERN模式'目标文本进行逐行匹配检查,注意grep默认会以 行 为单位打印匹配到的行.

  以下是grep命令的语法及常用参数:

grep [OPTIONS] PATTERN [FILE...] 
   选项    模式   文件
###参数及含义
--color=auto  #<==匹配成功显示颜色
-v #<==排除
-i #<==忽略大小写
-n  #<==显示匹配行及其行号
-o #<==仅显示匹配到的字符串
-w  #<==只匹配过滤的单词
-q #<==静默参数,不输入任何信息
-r             #<==递归过滤目录下的文件
-A #<==after,后n行
-B #<==before,前n行
-C #<==前后各n行
-E #<== 相当于egrep,同时过滤多个,中间使用 | 分隔

2. grep命令常用用法

######命令参数常用用法:  
[root@test ~]# cat a.txt
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@test ~]# grep -n 'ntp' a.txt  #<==显示字符串所在行及其行号
3:ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@test ~]# grep -v '^ntp' a.txt  #<==排除用法,将以ntp开头的行排除后打印输出
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@test ~]# grep -i 'Privilege' a.txt    #<==忽略大小写,输出字符串匹配到的行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[root@test ~]# grep -o 'Privilege' a.txt    #<==仅仅显示匹配到的字符串
Privilege
[root@test ~]# grep -w 'Privilege' a.txt    #<==很少用,匹配单词,但有时用于脚本中匹配指定的用户
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[root@test ~]# seq 10 >a.txt
[root@test ~]# grep -E "1|2" a.txt  #同时过滤多个字符串所在的行
[root@test ~]# grep -A 3 '5' a.txt  #<==显示字符串5及后面3行
5
6
7
8
[root@test ~]# grep -B 3 '5' a.txt  #<==显示字符串'5'及之前3行
2
3
4
5
[root@test ~]# grep -C 3 '5' a.txt  #<==显示字符串'5'及前后3行
2
3
4
5
6
7
8
######配合正则表达式常用用法(注意:使用egrep就无需 \ 反斜线转义,grep使用正则需要 \ 转义)
[root@test ~]# cat a.txt
abxy
xay
xxxxxxxxy
x
[root@test ~]# grep 'x*?y' a.txt  #<==注意,这里不会匹配到任何内容,此时?代表单个字符
[root@test ~]# grep 'x*y' a.txt  #<==贪婪模式(最长匹配原则)匹配
abxy
xay
xxxxxxxxy
[root@test ~]# grep 'x*\?y' a.txt  #<==此时问号是正则,代表匹配前面字符0次或1次
abxy
xay
xxxxxxxxy
[root@test ~]# grep 'a.*y' a.txt   #<==.*代表任意内容
abxy
xay
[root@test ~]# grep 'x\?y' a.txt
abxy
xay
xxxxxxxxy
[root@test ~]# grep 'x\+y' a.txt  #<==+号匹配前面字符x至少1次
abxy
xxxxxxxxy
#####匹配次数
[root@test ~]# tail -5 /etc/passwd >a.txt
[root@test ~]# cat a.txt
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@test ~]# grep -o '[a-z]\{3\}t' a.txt  #<==匹配文本中,t字符串的前面有3个随意小写字母的字符串
ount
abrt
abrt
arat
empt
post
post
[root@test ~]# grep -o '[a-z]\{3,5\}t' a.txt  #<==匹配,t字符串的前面有3-5个小写字母的字符串
[root@test ~]# grep -o '[a-z]\{,5\}t' a.txt  #<==匹配,t字符串的前面有至多5个小写字母的字符串
[root@test ~]# grep -o '[a-z]\{3,\}t' a.txt  #<==匹配,t字符串的前面有至少3个小写字母的字符串
#####位置锚定
[root@test ~]# cat a.txt
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@test ~]# grep -o '\<[a-z]\{3\}t' a.txt   #<==必须出现单词首部
abrt
abrt
empt
post
post
[root@test ~]# grep -o '\<[a-z]\{3\}t\>' a.txt  #<==锚定  单词尾部
abrt
abrt
[root@test ~]# ifconfig eth0|sed -n '2p'|grep -o '\<10.0.0.30\>'  #<==grep功能不擅长过滤此种内容
10.0.0.30
######生产常用于去除空行和以#号开头的行
[root@test ~]# grep -Ev "^$|^#" /etc/yum.repos.d/CentOS-Base.repo

  

grep知识及常用用法梳理的更多相关文章

  1. sed知识及常用用法梳理

    1.sed命令简介及其参数说明 sed流编辑器,擅长对文本进行增删改查,过滤指定的字符串和取指定行,也可以在行中字符串前后插入内容,功能非常强大. 注意:sed默认只支持基本的正则表达式,如果要想支持 ...

  2. grep参数说明及常用用法

    grep参数说明及常用用法 趁着午休的时间把自己经常使用的一些grep命令整理一下. 方便以后查看. 后续会逐步把awk/sed/find等常用的命令理一理. 增强下记忆. 也算是对得起自己了. ^^ ...

  3. grep参数说明及常用用法(转)

    转:https://www.cnblogs.com/leo-li-3046/p/5690613.html grep常用参数说明 grep [OPTIONS] PATTERN [FILE...] gre ...

  4. grep 的一些常用用法

    打印匹配到的上下5行 grep -C 5 'root' /etc/passwd            上下5行 grep -A 5 'root' /etc/passwd            afte ...

  5. grep常用用法

    grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件 ...

  6. 预备知识-python核心用法常用数据分析库(上)

    1.预备知识-python核心用法常用数据分析库(上) 目录 1.预备知识-python核心用法常用数据分析库(上) 概述 实验环境 任务一:环境安装与配置 [实验目标] [实验步骤] 任务二:Pan ...

  7. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  8. ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  9. iptables-25个常用用法【转】

    本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇iptables详细教程:基础.架构.清空规则.追加规则.应用实例,看完这篇文章,你就能明白iptables ...

随机推荐

  1. 【X86】---X86处理器大小端的数据存储验证

    之前也关注过大小端的存储,可能时间久了,加之又之前的电脑抽象换成了当前的处理器寄存器的值判断,导致自己总是有点蒙圈.看Spec手册的时候,有时会无法与手册中某个Bit的值与RU/RW工具读出来的对应上 ...

  2. Java 1.7.0_06中String类内部实现的一些变化【转】

    原文链接: java-performance 翻译: ImportNew.com- 夏千林译文链接: http://www.importnew.com/7656.html ChangeLog: 201 ...

  3. Activiti服务任务(serviceTask)

    Activiti服务任务(serviceTask) 作者:Jesai 都有一段沉默的时间,等待厚积薄发 应用场景: 当客户有这么一个需求:下一个任务我需要自动执行一些操作,并且这个节点不需要任何的人工 ...

  4. matplotlib 直方图

    一.特点 数据必须是原始数据不能经过处理,数据连续型,显示一组或多组分布数据 histogram 直方图 normed 定额 二.核心 hist(x, bins=None, normed=None) ...

  5. java8 stream自定义分组求和并排序

    public static void main(String[] args) { List<GroupDetailDTO> list = new ArrayList<>(); ...

  6. 【Java并发基础】安全性、活跃性与性能问题

    前言 Java的多线程是一把双刃剑,使用好它可以使我们的程序更高效,但是出现并发问题时,我们的程序将会变得非常糟糕.并发编程中需要注意三方面的问题,分别是安全性.活跃性和性能问题. 安全性问题 我们经 ...

  7. Oracle 11g 安装过程及测试方法

    大家可以根据自己的操作系统是多少位(32位或64位)的,到官网下载相应的安装程序,如下图所示. 有一点需要注意,Oracle的安装程序分成2个文件,下载后将2个文件解压到同一目录即可.     下载完 ...

  8. .netcore 3.1高性能微服务架构:webapi规范

    1.1 定义 1.基础接口:单一职责原则,每个接口只负责各自的业务,下接db,通用性强. 2.聚合接口:根据调用方需求聚合基础接口数据,业务性强. 1.2 协议 1. 客户端在通过 API 与后端服务 ...

  9. NOI2.5 1817:城堡问题

    描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # ...

  10. Python学习,第二课 - 字符编码

    关于字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Inte ...