grep工具

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
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












本文转自方向对了,就不怕路远了!51CTO博客,原文链接:http://blog.51cto.com/jacksoner/1979352 ,如需转载请自行联系原作者




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL HIVE
hive中的 lateral view
hive中的 lateral view
292 0
|
移动开发 前端开发 JavaScript
【值得收藏】HTML5使用多种方法实现移动页面自适应手机屏幕的方法总结
随机智能手机,平板等智能移动设备的普及。移动端是我们目前接触最多的页面展示终端,不管是对于开发者还是其他普通的使用者都是普遍的存在,而且移动终端的使用比电脑更广泛,更频繁,特别是当微信平台等变成我们日常使用工具之后。所以对于开发者来说,不管任何开发任何界面都需要着重考虑页面对移动设备的兼容以及自适应。才能让用户体验性更好。
2195 0
|
4月前
|
JSON API PHP
10多万语录随机一言API接口详解及调用示例
随机一言API可输出心灵鸡汤、至理名言等内容,适用于评论系统、签名生成等场景。完全免费,支持GET/POST请求。需注册获取专属ID和KEY,返回JSON格式数据,并提供PHP、Python调用示例。注意密钥安全与频率限制,内容版权归接口盒子所有。应用于每日推送、心情日记等多种场景。
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
625 5
|
5月前
|
人工智能 Java 程序员
程序员副业搞钱新姿势!晒完整工程代码赢万元好礼
飞算JavaAI炫技赛重磅回归!展示解决复杂业务场景的完整工程代码,赢取万元现金大奖,让技术实力被业界看见。通过比赛,你的作品将成为最佳简历,吸引高质项目与合作,解锁长期副业可能。借助飞算AI工具提效,掌握未来竞争力,拓展人脉圈链接更多资源。程序员们,立即参赛,用代码开启“搞钱”新征途!
|
8月前
|
编解码 安全 Java
如何在Spring Boot中实现数据加密
本文介绍了如何在Spring Boot中实现数据加密。首先阐述了数据加密的重要性与应用场景,接着讲解了对称加密和非对称加密的原理及区别。通过添加依赖、配置加密算法、编写加密工具类等步骤,展示了具体实现方法,并在业务代码中应用加密技术保护敏感数据。希望对开发者有所帮助。
614 7
|
11月前
|
JSON 前端开发 JavaScript
Java属性为什么不能是is开头的boolean
在Java实体类中,阿里规约要求boolean属性不应以is开头。文章通过实际案例分析了isUpdate字段在JSON序列化过程中变为update的问题,并提供了自定义get方法或使用@JSONField注解两种解决方案,建议遵循规约避免此类问题。
322 0
Java属性为什么不能是is开头的boolean
|
8月前
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
12月前
|
人工智能 自然语言处理 前端开发
什么?!通义千问也可以在线开发应用了?!
阿里巴巴推出的通义千问,是一个超大规模语言模型,旨在高效处理信息和生成创意内容。它不仅能在创意文案、办公助理、学习助手等领域提供丰富交互体验,还支持定制化解决方案。近日,通义千问推出代码模式,基于Qwen2.5-Coder模型,用户即使不懂编程也能用自然语言生成应用,如个人简历、2048小游戏等。该模式通过预置模板和灵活的自定义选项,极大简化了应用开发过程,助力用户快速实现创意。
|
负载均衡 Oracle 网络协议
Oracle中TAF与SCANIP全面解析
通过本文的解析,读者可以清晰地理解Oracle中TAF与SCAN IP的概念、工作原理及其在实际应用中的优势和局限性。TAF通过自动故障转移提升了会话的高可用性,而SCAN则通过简化客户端连接和负载均衡提升了集群的可管理性和扩展性。这两种技术在现代企业数据库架构中扮演着重要角色,能够显著提高系统的稳定性和可用性。
482 6