grep 学习笔记

grep是UNIX和LINUX中使用最广泛的命令之一
grep允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行。grep支持基本正
则表达式,也支持其扩展集。

测试文件datafile,如下

1.grep一般格式为:
grep[选项]基本正则表达式[文件]
这里基本正则表达式可为字符串。

2.在grep命令中输入字符串参数时,最好将其用双引号括起来。
一是以防被误解为shell命令
二是可以用来查找多个单词组成的字符串
在调用变量时,也应该使用双引号

3.grep常用选项
常用的grep选项有:
-c只输出匹配行的计数。
-i不区分大小写(只适用于单字符)。
-h查询多文件时不显示文件名。
-l查询多文件时只输出包含匹配字符的文件名。
-n显示匹配行及行号。
-s不显示不存在或无匹配文本的错误信息。
-v显示不包含匹配文本的所有行。

4.grep和正则表达式
使用正则表达式使模式匹配加入一些规则,因此可以在抽取信息中加入更多选择。使用
正则表达式时最好用单引号括起来,这样可以防止 grep中使用的专有模式与一些 shell命令的
特殊方式相混淆。
        1、模式范围
        抽取代码为4 8 4和4 8 3
        #grep ‘48[34]‘ datafile
        2、不匹配行首
        抽出记录,使其行首不是4 8
        #grep ‘^[^48]‘ datafile
        3、设置大小写
        使用- i开关,可以屏蔽大小写或者使用 [ ]模式
        #grep ‘[Ss]ept‘ datafile
         如果在满足上述条件的情况下还需满足必须包含483.则
        #grep ‘[Ss]ept‘ datafile | grep 483
        4、匹配任意字符
        以L开头,以D结尾的所有代码
        #grep ‘K...D‘ datafile
        头两个是大写字母,中间两个任意,并以 C结尾
        #grep ‘[A-Z][A-Z]..C‘ datafile
        5、日期查询
        查询所有以 5开始以1996或1998结尾的所有记录
        #grep ‘5..199[6,8]‘ datafile
        6、范围组合
        获取第一列代码
        #grep ‘^[0-9][0-5][0-6]‘ datafile
        7、模式出现机率
        包含数字4至少重复出现两次的所有行
        #grep ‘4\{2,\}‘ datafile
        取记录使之包含数字999(三个9)
        grep ‘9\{3,\}‘ datafile
        查询重复出现次数一定的所有行,语法如下,数字 9重复出现两次
        grep ‘9\{2\}‘ datafile
        重复出现次数在一定范围内  
        匹配数字8重复出现2到6次,并以3结尾
        #grep ‘6\{2,6\}3‘ datafile
        8、使用grep匹配"与"或者"或"模式
        grep命令加- E参数,这一扩展允许使用扩展模式匹配
        获取代码为 219或216,
        #grep -E ‘219|216‘ datafile
        9、空行
        结合使用^和$可查询空行。使用- n参数显示实际行数:
        #grep ‘^$‘ datafile
        10、匹配特殊字符
        诸如$.‘"*[]^|\+?,必须在特定字符前加\
        #grep ‘\.‘ datafile
        或者
        #grep ‘\"‘ datafile
        如要查询文件名controll.conf
        #grep ‘controll\.conf‘ /PATH/TO/SOME
        11、查询格式化文件名
        在某目录中查找六个小写字符,后跟句点,接着是两个大写字符格式的文件
        #grep ‘^[a-z]\{1,6\}\.[A-Z]\{2\}‘ /PATH/TO/SOME
        12、查询IP地址
        #grep ‘[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}‘ ipfile
        13、类名
        [[:upper:]][A-Z]     [[:alnum:]][0-9a-zA-Z]
        [[:lower:]][a-z]     [[:space:]]空格或tab键
        [[:digit:]][0-9]     [[:alpha:]][a-zA-Z]
        举例
        查找以5开头,后跟至少两个大写字母。
        #grep ‘5[[:upper:]][[:upper:]]‘ datafile
5、egrep
egrep代表expression或extendedgrep,适情况而定。egrep接受所有的正则表达式,egrep
的一个显著特性是可以以一个文件作为保存的字符串,然后将之传给egrep作为参数.
        1、查看在系统中是否有帐号louise、matty或pauline,
        使用who命令并管道输出至egrep
        who | egrep (louise|matty|pauline)
        2、还可以使用^符号排除字符串。如果要查看系统上的用户,但不包括 matty和pauline
        who | egrep -v ‘^(matty|pauline)‘
        3、如果要查询一个文件列表,包括shutdown,shutdowns,reboot和reboots,使用egrep可容
        易地实现
        #egrep ‘(shutdown | reboot) (s)?‘ /PATH/TO/SOME

时间: 2024-11-02 12:43:01

grep 学习笔记的相关文章

grep学习笔记

grep        grep一般格式为: grep [选项]基本正则表达式[文件] 基本正则表达式可为字符串. grep常用选项:        -c    # 只输出匹配行的计数 -i    # 不区分大小写 -h    # 查询多文件时不显示文件名 -l    # 查询多文件时只输出包含匹配字符的文件名 -n    # 显示匹配行及行号 -s    # 不显示不存在或无匹配文本的错误信息 -v    # 反向查找 -e    # 使用正则表达式 -w    # 精确匹配 -o    #

awk学习笔记【转】

Awk学习笔记 整理:Jims of 肥肥世家 <[email protected]> Copyright © 2004 本文遵从GPL协议,欢迎转载.修改.散布. 第一次发布时间:2004年8月6日 Table of Contents 1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符

LVS的持久连接和awk/sed/grep的学习笔记

一.LVS持久连接的模式 1.PPC(persistent port connection) ipvsadm -A|E 192.168.10.1:80 -p 600 定义VIP为192.168.10.1director的80端口为持久连接,也就是只把web服务加入集群服务,可以通过改变端口实现不同服务的持久连接且把不同服务加入集群服务 2.PCC(persistent client connection) ipvsadm -A|E 192.168.10.1:0 -p 600 定义VIP为192.

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

基于CentOS7上的搭建javaweb环境 - 学习笔记

一, 概述 上一篇记录了安装CentOS7的基本步骤及配置,现在要讲如何搭建基于CentOS7环境的javaweb环境了,我以 mysql + jdk1.8.0_91 + apache tomcat7.0.69 为例进行讲述. 二, 安装步骤 1, 首先在CentOS7下在线安装mysql数据库服务 (1)先查看是否已安装了mysql rpm -qa | grep mysql (2)若安装了,可以卸载,再重新安装 yum -y remove mysqlxxxxx (3)安装 yum -y ins

Linux shell脚本-基础学习笔记

Linux脚本能力不是太强,最近再补习下,毕竟linux shell在日常工作中还是很普遍的, 用起来更方便.省时省力. 以下是学习笔记,偏理论,后面有几个例子,供参考. shell脚本组成元素系统命令.文本处理工具(grep\sed等).变量.条件判断.循环结构和函数 -------------------------------------------- 三剑客:grep,sed,awk,还有wc,sort,head等 ------------------------------------

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Oracle Rac11g 学习笔记

查看集群节点状态 命令是olsnodes -i 显示每个节点的VIP, -n 显示每个节点在RAC集群中的编号 -p 显示每个节点所使用的私有IP地址 -s 显示每个节点的状态(activive或者inactive) 列车集群中所有资源 crs_stat -t 查看crs资源状态 crsctl check crs 查看ctss服务的状态 crsctl check ctss 查看集群中所有节点状态 crsctl check cluster -all 查看ASM实例进程 ps -ef | grep

LVS学习笔记--DR模式部署

一.部署环境: 服务器版本:CentOS6.5(Finnal) 网络拓扑: 二.需求分析:调度服务器与网页服务器均在同一网段局域网环境,用户提交的请求会经过调度器的分配指定到网页服务器,同时保证服务高可用性(任意一台网站服务器宕机后调度器会剔除它直至服务器恢复至正常:主调度器宕机后从调度器会接管它直至其恢复正常.). 三.相关配置: 部署调度器LVS服务脚本: #!/bin/sh mkdir tools cd tools/ # yum install lrzsz # rz # ls wget h