grep工具

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

正则表达式:

正则就是一串有规律的字符串

掌握好正则对于编写shell脚本有很大帮助

各种编程语言中都有正则,原理是一样的

grep工具

格式:

grep [-cinvABC] 'word' filename 

 -c 行数

 -i 不区分大小写

 -n 显示行号

 -v 取反

 -r 遍历所有子目录

 -A 后面跟数字,过滤出符合要求的行以及下面n行

 -B 同上,过滤出符合要求的行以及上面n行

 -C 同上,同时过滤出符合要求的行以及上下各n行

1、[root@test ~]# cat /etc/passwd| grep 'test'

test:x:507:111::/home/test:/bin/bash

test1:x:509:111::/home/test1:/bin/bash

gztest:x:555:111::/home/zg/:/bin/bash

-c:统计匹配的行数

[root@test ~]# grep -c 'test' /etc/passwd

3


2、

[root@test ~]# grep -in 'TesT' /etc/passwd

33:test:x:507:111::/home/test:/bin/bash

35:test1:x:509:111::/home/test1:/bin/bash

36:gztest:x:555:111::/home/zg/:/bin/bash


3、

[root@test ~]# ps -ef | grep rsync

root     11137     1  0 14:55 ?        00:00:00 rsync --daemon

root     11904 10038  2 16:10 pts/1    00:00:00 grep rsync

[root@test ~]# ps -ef | grep rsync| grep -v grep

root     11137     1  0 14:55 ?        00:00:00 rsync --daemon


4、

[root@test ~]# grep -r 'mysql' *

1.txt:mysqlroot=mysql -uroot -p

5、

[root@test ~]# grep -n -C 5 'test' /etc/passwd  

28-apache:x:48:48:Apache:/var/www:/bin/bash

29-tcpdump:x:72:72::/:/sbin/nologin

30-dockerroot:x:498:498:Docker User:/var/lib/docker:/sbin/nologin

31-www:x:506:506::/home/www:/bin/bash

32-jenkins:x:497:497:Jenkins Automation Server:/var/lib/jenkins:/bin/false

33:test:x:507:111::/home/test:/bin/bash

34-gz1:x:508:508::/home/gz1:/bin/bash

35:test1:x:509:111::/home/test1:/bin/bash

36:gztest:x:555:111::/home/zg/:/bin/bash

37-fc:x:556:556::/home/fc:/bin/bash

38-rsync:x:557:557::/home/rsync:/sbin/nologin


通配符

字符和字符范围匹配

. 匹配任意"单个字符" (bash 中,使用?号)

* 匹配紧挨在其前面的字符任意次

.*  表示零个或多个任意字符,空行也包含在内。

'o\{2\}'' 出现2次以上的o打印;'o\{1,4\}':出现一次到4次的打印

[root@test ~]# ls 2*.txt

23.txt  2.txt

.*  组合-----匹配任意长度的任意字符

排除空格及#开头的行

[root@test ~]# grep -E -v '^$|^#' /etc/fstab 

/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1

UUID=22af8038-24b3-4dd4-b91b-10f1727c1083 /boot                   ext4    defaults        1 2

/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

UUID=4381537c-d536-40d6-9522-9343c5998a29 /data ext4   defaults         0 0


例子:

[root@centos7-2 tmp]# cat test.txt 

123

abc

456


abc2323

#laksdjf

Alllllllll

问题1、查找出不是以大小写字母开头的行

#[^字符] 表示除[ ]内的字符之外的字符,^[]以什么开头;[15]:表示1和5,而不是15

grep ^[^A-Za-z] test.txt



以数字开头:

[root@test ~]# grep ^[0-9] 1.txt 

1 asd

2sd

3

4

5


以a-z开头:

[root@test ~]# grep -E ^[a-z] 1.txt 

mysqlroot=mysql -uroot -p

asd4444

sd

fsdf

[root@test ~]# grep -E ^[^a-z] 1.txt 

1 asd

2sd

3

4

5


egrep=grep -E

1、筛选出出现一个或者多个o

egrep 'o+' /etc/passwd


2、egrep 'oo+' /etc/passwd

3、(oo)+表示出现一个或者多个oo的

[root@centos7-2 tmp]# egrep '(oo)+' passwd 

root:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

roooooooooot

rooodt










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/1979352,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
73 1
性能工具之linux三剑客awk、grep、sed详解
|
10月前
|
运维 Shell Linux
linux文本处理工具——grep、sed、awk用法
linux文本处理工具——grep、sed、awk用法
121 1
|
Linux C语言 计算机视觉
linux中最为常用的三大文本(grep,sed,awk)处理工具(下)
linux中最为常用的三大文本(grep,sed,awk)处理工具
138 0
|
存储 移动开发 Unix
linux中最为常用的三大文本(grep,sed,awk)处理工具
linux中最为常用的三大文本(grep,sed,awk)处理工具
110 0
|
Linux 网络安全 Perl
Linux的文本处理工具浅谈-awk sed grep
Linux的文本处理工具浅谈 awk   老大 【功能说明】 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS竖着切,列的分隔符 RS横着切,行的分隔符 ...
1413 0
|
关系型数据库 MySQL Shell