当前位置: 首页 > news >正文

正则介绍_grep

9.1 正则介绍_grep(上)

什么是正则
正则是一串有规律的字符串
掌握好正则对于编写shell脚本有很大的帮助
各种编程语言中都有正则,原理是一样的
本章将要学习grep/egrep、sed、awk
grep
grep[-cinvABC] 'word' filename
-c 表示打印符合要求的行数
-i 不区分大小写
-n 符合要求的行及其行号
-v 取反
-r遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B同上,过滤出符合要求的行以及上面n行
-c同上,同时过滤出符合要求的行以及上下各n行

[root@centos-01 ~]# ls
11.txt  123  1.txt  1.txt~  234  2.txt  3.txt  anaconda-ks.cfg.1  default
[root@centos-01 ~]# mkdir grep
[root@centos-01 ~]# cd grep
[root@centos-01 grep]# cp /etc/passwd .
[root@centos-01 grep]# ls
passwd
[root@centos-01 grep]# pwd
/root/grep
[root@centos-01 grep]# ls
passwd
[root@centos-01 grep]# grep 'nologin' passwd
[root@centos-01 grep]# grep -c 'nologin' passwd          //加-c看有多少行//
18
[root@centos-01 grep]# grep -n 'nologin' passwd          //加-n显示行号//
[root@centos-01 grep]# grep -ni 'nologin' passwd         //加i会把大写的一列列出来//

9.2 grep(中)

grep -n 'root' /etc/passwd //符合要求的行及其行号//
grep -nv 'nologin' /etc/passwd //不含这个的行及其行号//
grep '[0-9]'/etc/inittab //所有包含数字的//
grep -v '[0-9]'/etc/inittab //所有不包含数字的//
grep -v '^#' /etc/inittab //所有不包含#的//

grep -v '^#' /etc/inittab|grep -v '^$'
grep '^[^a-zA-Z]' test.txt

[root@centos-01 grep]# grep '[0-9]' passwd

grep -v'[0-9]' /etc/inittab //不带数字的行//
grep -v'^#'/etc/inittab //^表示以什么开头的行,这里表示以#开头的行,v表示不是以什么开头的行//
grep '^[^a-zA-Z]'test.txt
^如果在[]中则取非的意思,如果在[ ]外面,则是以什么什么开头的意思

9.3 grep (下)

grep 'r.o'test.txt //小数点表示任意一个字符//
grep 'oo'test.txt //表示0个或者多个号前面的字符//
grep '.
'test.txt //点*就是通配//
grep ‘o{2}'/etc/passwd //表示一个范围//
egrep 'o+'/etc/passwd //表示一个或多个加号前面的字符//
egrep 'oo?'/etc/passwd //表示0个或一个问号前面的字符//
egrep 'root|nologin' /etc/passwd //竖线表示或者//

转载于:https://blog.51cto.com/13242922/2061010

相关文章:

  • J2EE
  • 编写按键驱动以及在framework层上报按键事件
  • sed工具
  • 【.Net边角料系列】1-单例模式(我真不是你想的那样)
  • 【CodeForces】713 C. Sonya and Problem Wihtout a Legend
  • Python处理CSV,Excel,PDF和图片
  • 如何保障研发质量不踩坑?阿里技术专家教你几招
  • 小型公司案例 -- 局域网故障排查
  • Future 模式简介
  • 【24】线程池
  • 内存优化问题
  • NPM测试模块之rewire教程
  • 解决PHP编译cURL的reinstall the libcurl问题
  • 关于selenium webdriver chromedriver下载的问题
  • php多进程实现
  • ----------
  • 自己简单写的 事件订阅机制
  • C++类中的特殊成员函数
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • React+TypeScript入门
  • vuex 笔记整理
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 初识 webpack
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 爬虫模拟登陆 SegmentFault
  • 小程序开发之路(一)
  • 一些关于Rust在2019年的思考
  • 用mpvue开发微信小程序
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm高校实验室 毕业设计 800008
  • (黑马C++)L06 重载与继承
  • (论文阅读30/100)Convolutional Pose Machines
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (转)linux下的时间函数使用
  • (转)Windows2003安全设置/维护
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net Winform开发笔记(一)
  • .NET 命令行参数包含应用程序路径吗?
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境