grep,egrep及元字符和posix字符集
grep命令详解
grep命令是*nix上匹配行的一个工具,可以用来搜索匹配的行,对于查找指定字符和字符行非常好用,grep非常有效grep家族包含grep,egrep,fgrep,
grep使用的是基本元字符,egrep使用的是扩展正则表达式,,可以使用grep -E来使用egrep,使用grep -F来使用fgrep,或者直接使用egrep,fgrep,一般
来说grep,egrep比较常用,较少使用fgrep.下面来主要介绍grep和egrep.
语法格式为 grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep的常用选型
-i: 不区分大小写
-n: 匹配行显示行号
-v: 反向匹配,显示不匹配的行
-w:匹配字母和数字
-c:显示匹配的行数
--color:用颜色显示匹配到的字符
-o:仅显示匹配的字符
-A:显示匹配的后几行
-B:显示匹配的前几行
-C:显示匹配的上下几行
基本元字符
^ :锚定行首
$ :锚定行尾
. :零个或一个字符
* :一个字符
[]: 里面任一字符
[^]:非^后的字符
\(..\) 后向引用
\< :锚定字符
x\{m\} 字符x出现m次
x\{m,\} 字符m大于m次
x\{m,n\} 字符出现大于等于m次小于n次
\w :匹配单词
\W
\b 匹配单词词首或词尾
扩展元字符
? :0个或1个前面字符
+ :1个或多个前面字符
() :一个表达式,可以用来后向引用
| :左右两边或者,表示选择
POSIX字符类
- [:alnum:]
-
文字数字字符
- [:alpha:]
-
飞数字字符字符
- [:digit:]
-
数字字符
- [:graph:]
-
非空字符(非空格、控制字符)
- [:lower:]
-
小写字符
- [:cntrl:]
-
控制字符
- [:print:]
-
非空字符(包括空格)
- [:punct:]
-
标点符号
- [:space:]
-
所有空白字符(新行,空格,制表符)
- [:upper:]
-
大写字符
- [:xdigit:]
-
十六进制字符
实例
grep [Ss] /proc/meminfo
2、取出默认shell为非bash的用户;
grep -v 'bash' /etc/passwd
3、取出默认shell为bash的且其ID号最大的用户;
grep 'bash' /etc/passwd | cut -d: -f3 |sort |tail -1
4、显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
grep '^#[[:space:]]\{1,\}[[:space:]]\{1,\}' /etc/rc.d/rc.sysinit
5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep '^[[:space:]]\{1,}' /boot/grub/grub.conf
6、找出/etc/passwd文件中一位数或两位数;
grep '\<[0-9]\{1,2\}\>' /etc/passwd
7、找出ifconfig命令结果中的1到255之间的整数;
ifconfig eth0|egrep '2[0-5][0-5]|1[0-9][0-9]|[1-9][0-9]|[0-9]'
8、查看当前系统上root用户的所有信息;
grep '\<root\>' /etc/passwd
9、添加用户bash和testbash、basher,而后找出当前系统上其用户名和默认shell相同的用户;
grep '^\([[:alpha:]]\{1\}\.*\1$' /etc/passwd
10、找出netstat -tan命令执行的结果中以“LISTEN”或“ESTABLISHED”结尾的行;
11、取出当前系统上所有用户的shell,要求:每种shell只显示一次,且按升序显示;
cat /etc/passwd |cut -d: -f7 | sort -u
转载于:https://blog.51cto.com/limeizhi/1362238
grep,egrep及元字符和posix字符集相关推荐
- 正则表达式grep, egrep, fgrep
grep,egrep,fgrep : print lines matching a pattern 1.grep : grep [options] PATTERN FILE... PATTERN由元字 ...
- grep, egrep, fgrep笔记
grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来. Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PAT ...
- grep/egrep和正则表达式汇总
grep, egrep, fgrep 语法格式: grep [option] ... 'PATTERN' FILE --color=auto 对目标FILE进行搜索,显示能够匹配的行 正则表达式 基本 ...
- 9.grep/egrep详解
这一小节重点讲解了grep和egrp的用法,这个命令在linux当中用的非常频繁,需要熟练掌握,下一小节会需要结合grep/egrep来详细讲解正则表达式的使用方法. 文章目录 前言 一.Grep详解 ...
- grep / egrep
grep命令 语法:grep [-cinvABC] 'word' filename -c:打印符合要求的行数 -i:不区分大小写 -n:在输出符合要求的行的同时连同行号一起输出 -v:打印不符合要求的 ...
- Shell命令-文件及内容处理之grep(egrep)、join
文件及内容处理 - grep(egrep).join 1. grep(egrep):文本过滤工具 grep(egrep)命令的功能说明 grep命令是Linux系统中最重要的命令之一,其功能是从文本文 ...
- grep egrep命令中-w选项的用法
20171015老男孩第41期第6周课程中讲到了grep/egrep命令的四个选项: 1. -i 不区分大小写,即不区分:aA 2. -w 按照单词 进行匹配(括号外的意思是老师讲的,但我总感觉这样理 ...
- Linux grep,egrep及相应的正则表达式用法详解
linux在进行文本处理过程中的文本搜索工具称为正则表达式.文本搜索工具有grep.egrep.fgrep,egrep为正则表达式的扩展正则表达式,fgrep用于搜索文本字符串,与 grep 和 eg ...
- linux 文本搜索命令 grep egrep fgrep 区别
grep 传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: 递归模 ...
最新文章
- dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
- R可视化绘制威布尔分布(Weibull Distribution)
- matlab多维数组、结构体数组
- 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )
- 【8-23】MFC学习笔记 01
- 【渝粤教育】电大中专消费者行为学 (3)作业 题库
- Hystrix-超时机制和断路器模式
- 你想要的单片机自学指南都在这里(大一必看)
- 2018 蓝桥杯 省赛 B组 原题 C语言B组 第二题 第九届蓝桥杯真题+答案+解析
- 三极管原理及特性分析
- Excel工作日日历
- 云计算概念_云计算的概念
- java简单冒泡排序代码,跳槽大厂必看!
- 实验题目:约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,报到m时停止并且报m的人出列,再从他的下一个人
- 驱动——LED灯循环闪烁
- 码元传输速率计算及运用
- 版本管理工具 git和SVN 忽略文件和目录
- 魅族手机刷ubuntu php,手机变PC的第一步:给魅族PRO 5刷Ubuntu Touch系统 - IT之家
- 码农微信公众账号推荐
- Win7下更改iTunes备份路径最便捷的方法(亲测win10同样适用)
热门文章
- python单词统计、给定一个段落()_数训营第一课笔记:Python基础知识
- 信息论与编码_哈夫曼编码
- 微型计算机与维修自测,微机系统及维护第三章自测.doc
- 在哪里刷题_刷题过程中,这些坑你踩了几个?
- Mongodb的安装部署
- Spark详解(五):Spark作业执行原理
- [RDMA] 高性能异步的可靠消息传递和RPC :Accelio
- 调用 标签打印软件_标签打印软件如何制作陶瓷标签模板
- c++求矩阵的秩_一篇文章搞定矩阵相关概念及意义通俗解释汇总
- Domain Model