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: ...
随机推荐
- 洛谷 [P3480] KAM-Pebbles
博弈论转化 本题的限制条件很多,我们尝试转化, 我们发现,定义 c[i] 为第 i 堆可以取得数量,如果第 i 堆取出了 x ,那么 c[i] - x , c[i + 1] + x 我们发现这是一个反 ...
- 【Codeforces Round #506 (Div. 3) 】
A:https://www.cnblogs.com/myx12345/p/9844334.html B:https://www.cnblogs.com/myx12345/p/9844368.html ...
- oracle 连接数据库以及查看当前用户、当前数据库实例
sql>show user;查看当前用户 sql>show parameter instance_name;查看当前数据库实例 例如: sqlplus登录:用sys用户登录(密码是1234 ...
- 未能加载文件或程序集“System.EnterpriseServices, Version=4.0.0.0或2.0.0.0
未能加载文件或程序集“System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50 ...
- java文本文件加密解密类
原文:http://www.open-open.com/code/view/1420031154765 import java.awt.*; import java.awt.event.*; impo ...
- android 子菜单
<!-- 定义基础布局LinearLayout --> <LinearLayout xmlns:android="http://schemas.android.com/ap ...
- jquery ajax 跨域訪问样例
<script type="text/javascript"> $(function(){ $.ajax({ cache : false, type ...
- 简单、强大的swig.js
Swig.js A simple, powerful, and extendable JavaScript Template Engine. 简单概括:JS模板引擎. Why to use 根据路劲渲 ...
- string 复制给char[] 即:c_str() 用法:
语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过str ...
- 怎么下载google商店的扩展程序?
首先,你有机会进入到了外网! 浏览器输入:chrome://extensions 复制唯一的ID进入:http://crx.2333.me/ ,然后下载即可!