linux初级学习笔记十:linux grep及正则表达式!(视频序号:04_4)
本节学习的命令:grep
本节学习的技能:
grep对文本的匹配
正则表达式的使用
知识点十:grep及正则表达式(4_4)
grep,egrep,fgrep:
grep: 根据模式搜索文本,并将符合模式的文本行显示出来。
Pattern(模式): 文本字符和正则表达式的元字符组合而成匹配条件
语法定义:
grep [options] PATTERN [FILE...] -i:表示忽略大小写 --color:把匹配到的值显示颜色 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串
文件名通配, globbing(回顾) *: 任意长度的任意字符 ?:任意单个字符 []:匹配指定范围内的任意单个字符
[^]: 匹配指定范围之外的任意单个字符
grep 'root' /etc/passwd --只显示/etc/passwd文件中符合查找‘root’的行 grep --color 'root' /etc/passwd alias grep='grep --color'
grep 'root' /etc/passwd grep -v 'root' /etc/passwd
grep -o 'root' /etc/passwd
grep命令测试
正则表达式(REGular EXPression, REGEXP):
元字符:
. : 匹配任意单个字符 [] :匹配指定范围内的任意单个字符 [^] :匹配指定范围外的任意单个字符 字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]
匹配次数(贪婪模式):
* : 匹配其前面的字符任意次
数据:a, b, ab, aab, acb, adb, amnb
匹配结果:a*b:b,ab,aab,acb,adb,amnb
a\?b:b,ab,aab,acb,adb,amnb
a.*b:ab,aab,acb,adb,amnb
.* : 任意长度的任意字符
\? : 匹配其前面的字符1次或0次
\{m,n\} :匹配其前面的字符至少m次,至多n次
\{1,\}:匹配前面的字符至少1次
\{0,3\}:匹配前面的字符1到3次
位置锚定:
^ : 锚定行首,此字符后面的任意内容必须出现在行首
$ : 锚定行尾,此字符前面的任意内容必须出现在行尾
^$ : 空白行
\<或\b : 锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b : 锚定词尾,其前面的任意字符必须作为单词的尾部出现
分组:
\(\)
后向引用
\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2:
\3:
--正则表达式
grep 'r..t' /etc/passwd vi a.txt
数据
a
b
ab
aab
acb
adb
amnb grep 'a*b' a.txt
grep 'a.*b' a.txt
grep 'a\?b' a.txt grep 'a\{1,3\}b' a.txt grep '^r..t' /etc/passwd
grep 'w$' /etc/inittab
grep 'b..h$' /etc/passwd
grep '^$' /etc/inittab grep '[[:digit:]]$' /etc/inittab
grep '[[:space:]][[:digit:]]$' /etc/inittab vi test2.txt
数据:
This is root.
The user is mroot.
rooter is a dog's name.
chroot is a command.
mrooter is not a word. grep 'root\>' test2.txt
grep '\<root' test2.txt
grep '\<root\>' test2.txt grep '\(ab\)*' a.txt vi test3.txt
数据:
He love his lover.
She like her liker.
He like his lover. grep 'l..e' test3.txt
grep 'l..e.*l..e' test3.txt
grep '\(l..e\).*\1' test3.txt grep '\([0-9]\).*\1$' /etc/inittab
正则表达式测试
课后作业:
练习:
、显示/proc/meminfo文件中以不区分大小的s开头的行;
grep -i '^s' /proc/meminfo
grep '^[sS]' /proc/meminfo
、显示/etc/passwd中以nologin结尾的行;
grep 'nologin$' /etc/passwd 取出默认shell为/sbin/nologin的用户列表
grep "nologin$' /etc/passwd | cut -d: -f1 取出默认shell为bash,且其用户ID号最小的用户的用户名
grep 'bash$' /etc/passwd | sort -n -t: -k3 | head - | cut -d: -f1 、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab 、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
grep ':[0-9]:' /etc/inittab 、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf 、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
grep '^\([0-9]\).*\1$' /etc/inittab 练习:
、找出某文件中的,位数,或2位数;
grep '[0-9]\{1,2\}' /proc/cpuinfo
grep --color '\<[0-9]\{1,2\}\>' /proc/cpuinfo 、找出ifconfig命令结果中的1-之间的整数; 、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息, 文件为/etc/passwd
grep '^student\>' /etc/passwd | cut -d: -f3
id -u student student1
student2 练习:分析/etc/inittab文件中如下文本中前两行的特征(每一行中出现在数字必须相同),请写出可以精确找到类似两行的模式:
l1::wait:/etc/rc.d/rc
l3::wait:/etc/rc.d/rc grep '^l\([0-9]\):\1.*\1$' /etc/inittab
课后练习
linux初级学习笔记十:linux grep及正则表达式!(视频序号:04_4)的更多相关文章
- linux初级学习笔记九:linux I/O管理,重定向及管道!(视频序号:04_3)
本节学习的命令:tr,tee,wc 本节学习的技能: 计算机的组成 I/O管理及重定向 管道的使用 知识点九:管理及IO重定向(4_3) 计算机组成: 运算器.控制器: CPU 存储器:RAM ...
- linux初级学习笔记七:linux用户管理,密码和组命令详解!(视频序号:04_1)
本节学习的命令: 用户管理命令:useradd,userdel,id,finger,usermod,chsh,chfn,passwd,pwck, 组管理命令:groupadd,groupmod,gro ...
- linux初级学习笔记三:linux操作系统及常用命令,及如何复制和移动文件!(视频序号:02_4)
本节学习的命令:cp,mv,install,du,read 本节学习的技能:文件的移动与复制 cp( copy):复制和移动文件 cp SRC DEST -r:递归复制一个目录及其目录中的所有文件 - ...
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- linux初级学习笔记一:linux操作系统及常用命令,及如何获取命令的使用帮助!(视频序号:02_1,2)
本节学习的命令:ls,cd,type,pwd, printenv, hash, date, clock, man, hwclock, info, cal, echo, printf, file! 本节 ...
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
1什么是进程:进程是一个执行中的程序 执行的程序: 代码->资源->CPU 进程有很多数据维护:进程状态/进程属性 所有进程属性采用的一个树形结构体维护 ps -a//所有进程 ps - ...
- linux初级学习笔记八:linux权限管理及权限管理命令详解!(视频序号:04_2)
本节学习的命令:chown,chgrp,chmod,openssl,umask 本节学习的技能: 文件权限详解及对其的操作 生成随机密码命令 用遮罩码对用户权限进行修改 站在用户登陆的角度来说SHEL ...
- linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)
本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...
- linux初级学习笔记五:bash特性详解!(视频序号:03_2,3)
本节学习的命令:history,alias,ualias,\CMD 本节学习的技能: bash的特性 光标跳转 查看命令历史 命令历史的使用技巧 给命令起别名 命令替换 文件名通配符 shell: ...
随机推荐
- SHoj 420 购买装备
购买装备 发布时间: 2017年7月9日 18:17 最后更新: 2017年7月9日 21:05 时间限制: 1000ms 内存限制: 128M 描述 最近盛大的一款游戏传奇世界极其火爆. ...
- 大整数类BIGN的设计与实现 C++高精度模板
首先感谢刘汝佳所著的<算法竞赛入门经典>. 众所周知,C++中储存能力最大的unsigned long long 也是有着一个上限,如果我们想计算非常大的整数时,就不知所措了,所以,我写了 ...
- pnputil
http://mb.yidianzixun.com/article/0FYSZgnB?s=mb&appid=mibrowser C:\Users\Administrator>pnputi ...
- 前端MVC Vue2学习总结(九)——Vuex状态管理插件
一.概要 1.1.Vuex定义与注意事项 Vuex是为vue.js框架更好的管理状态而设计一个插件.Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的 ...
- linux下二机制文件的查看和编辑
linux下很多命令都是二机制:/bin/下的各种命令---/bin/sh./bin/cat./bin/dmesg./bin/hostname等 如何查看这些二机制文件: xxd.hexdump 参考 ...
- paramiko使用exec_command执行rm -rf删除目录的坑
paramiko删除目录后的上传操作请参考步骤1.2.3的说明 try: ssh = SSHClient(ip,user) sftpClient = ssh.getSftpClient() outpu ...
- oracle学习 第二章 限制性查询和数据的排序 ——03
这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7 怎样使用转义(escape)操作符 ...
- 【Todo】RTP/RTCP/RTSP/SIP/SDP 等多媒体传输和会话协议
参考 http://m.blog.csdn.net/article/details?id=6211447
- 【c++】面向对象程序设计之虚函数详解
一.动态绑定什么时候发生 当且仅当通过指针或引用调用虚函数时,才会在运行时解析该调用 二.派生类中的虚函数 当我们在派生类中覆盖了某个虚函数时,可以再一次使用virtual指出该函数的性质,但是这么做 ...
- [Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
Sometimes, you might want to convert a JavaScript function that accepts a callback to one that retur ...