操作系统正则符号知识点总结
课程知识概述部分
- 系统正则符号
基础正则
扩展正则
- 系统正则符号
课程知识回顾说明
- 文件属性部分
inode block 概念理解 特点作用 诞生过程 查看过程
软链接 硬链接 概念理解 特点作用 诞生过程 查看过程
根据inode号码查找相应硬链接文件:
find / -type f -inum 202138465 - 系统符号信息
基础符号知识: # $ ! | “” ‘’ `` > >> 2> 2>> < << …/ ./ ~ - && || ;
通配符号知识: * {}
- 文件属性部分
系统正则符号概念
- 正则符号主要用于匹配字符信息
- 正则符号主要匹配文件内容信息
通配符号主要匹配是文件名称 - 正则符号只有三剑客命令可以识别
grep sed awk - 正则符号可以用于分析数据
基础正则符号: basic regular expression BRE (7个)
^ — 匹配以什么开头的信息
$ — 匹配以什么结尾的信息
find /oldboy -name “oldboy*” 文件名称以什么开头信息
grep “^oldboy” 文件内容以什么开头信息===============================================
补充: 如何查看一行后面是否有空格
方法一:
cat -A 文件信息
方法二:
vim 文件信息—> :set list^$ — 匹配空行信息
grep -v “^$” /etc/selinux/config — 利用v进行取反, 排除空行显示. — 匹配任意一个字符且只有一个字符
练习:
[root@oldboy69 oldboy 08:49:54]# grep “g.d” test01.txt
god
[root@oldboy69 oldboy 08:50:28]# grep “g…d” test01.txt
good
[root@oldboy69 oldboy 08:50:49]# grep “g…d” test01.txt
goood
[root@oldboy69 oldboy 08:50:53]# grep “.d” test01.txt
gd
god
good
goood
gooood- — 匹配符号前面一个字符连续出现0次或者多次
练习:
[root@oldboy69 oldboy 08:51:18]# grep “o*” test01.txt
gd
god
good
goood
gooood
.* — 匹配任意所有字符信息
grep “^m.*m$” test02.txt
my blog is http://oldboy.blog.51cto.com
\ — 转义(将意思进行转变)符号
- 将有意义信息变得没有意义
- 将没意义信息变得有意义
grep “.$” test02.txt
I teach linux.
my qq num is 49000448.
not 4900000448.\t — 制表符号
\n — 换行符号
\r — 换行符号echo -e “oldboy01\noldboy02”
[] — 匹配多个字符信息
[^] — 匹配多个字符信息进行取反排除grep “[^a-zA-Z0-9]” test02.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!扩展正则符号: extended regular expression ERE
grep -E 扩展正则符号/ egrep 扩展正则符号
sed -r 扩展正则符号- — 匹配符号前面一个字符连续出现1次或者多次
[root@oldboy69 oldboy 09:22:31]# grep “o*” test01.txt
gd
god
good
goood
gooood
[root@oldboy69 oldboy 09:41:26]# grep “o+” test01.txt
[root@oldboy69 oldboy 09:41:43]# grep -E “o+” test01.txt
god
good
goood
gooood
? — 匹配符号前面一个字符连续出现0次或者1次
[root@oldboy69 oldboy 09:43:14]# grep -E “o?” test01.txt
gd
god
good
goood
gooood
[root@oldboy69 oldboy 09:44:51]# grep -E “o?” test01.txt -o
o
o
o
o
o
o
o
o
o
o
[root@oldboy69 oldboy 09:45:51]# grep -E “o*” test01.txt -o
o
oo
ooo
oooo{} — 匹配符号前面一个字符连续出现指定次数
{n,m} — 匹配符号前面一个字符连续出现最少出现n次,最多出现m次
[root@oldboy69 oldboy 09:46:06]# cat test01.txt
gd
god
good
goood
gooood
[root@oldboy69 oldboy 09:47:59]# grep -E “o{2,3}” test01.txt
good
goood
gooood
{n} — 匹配符号前面一个字符连续出现指定n次
[root@oldboy69 oldboy 09:48:42]# cat test01.txt
gd
god
good
goood
gooood
[root@oldboy69 oldboy 09:50:12]# grep -E “o{2}” test01.txt
good
goood
gooood
[root@oldboy69 oldboy 09:50:38]# grep -E “o{2}” test01.txt -o
oo
oo
oo
oo{n,} — 匹配符号前面一个字符连续出现最少n次,最多没有限制
[root@oldboy69 oldboy 09:52:25]# cat test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@oldboy69 oldboy 09:52:30]# grep -E “o{2,}” test01.txt
good
goood
gooood
goooood
gooooood
[root@oldboy69 oldboy 09:52:56]# grep -E “o{2,}” test01.txt -o
oo
ooo
oooo
ooooo
oooooo{,m} — 匹配符号前面一个字符连续出现最少0次,最多出现m次
[root@oldboy69 oldboy 09:53:05]# cat test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@oldboy69 oldboy 09:54:10]# grep -E “o{,4}” test01.txt
gd
god
good
goood
gooood
goooood
gooooood
[root@oldboy69 oldboy 09:54:46]# grep -E “o{,4}” test01.txt -o
o
oo
ooo
oooo
oooo
o
oooo
oo| — 匹配多个字符串信息
grep -vE “#|$|#” /etc/selinux/configgrep -E “oldboy|oldbey” test02.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
my god ,i am not oldbey,but OLDBOY!
() — 将多个字符信息汇总成一个整体
[root@oldboy69 oldboy 10:26:24]# grep oldboy test04.txt
oldboyoldboyoldboyoldboy
oldboyoldboyoldboy
oldboyoldboy
oldboy
[root@oldboy69 oldboy 10:26:34]# grep -E “(oldboy){2}” test04.txt
oldboyoldboyoldboyoldboy
oldboyoldboyoldboy
oldboyoldboy
--- 后向引用前项信息[root@oldboy69 oldboy 10:31:59]# echo 654321 | sed 's#123456#<123456>#g'654321[root@oldboy69 oldboy 10:32:11]# echo 654321 | sed -r 's#(.*)#<\1>#g'<654321>[root@oldboy69 oldboy 10:34:08]# echo oldboy | sed -r 's#(.*)#<\1>#g'<oldboy>[root@oldboy69 oldboy 10:44:10]# echo 12345678787878787878 | sed -r 's#(..)(..)(..)(..)(..)(..)(..)(..)(..)(..)#<\1><\2><\3><\4><\5><\6><\7><\8><\9><\10>#g'<12><34><56><78><78><78><78><78><78><120>[root@oldboy69 oldboy 10:44:19]# 78 --> <120>说明: 在后向引用前项是, 最后可以引用 9个小括号# echo 12345678787878787878 | sed -r 's#(.{2})#<\1>#g'<12><34><56><78><78><78><78><78><78><78>[root@oldboy69 oldboy 10:49:18]# echo 123456787878787878789 | sed -r 's#(.{1,2})#<\1>#g'<12><34><56><78><78><78><78><78><78><78><9>[root@oldboy69 oldboy 10:49:42]# echo 12345678787878787878 | sed -r 's#(.{1,2})#<\1>#g'<12><34><56><78><78><78><78><78><78><78>
正则符号练习题:
练习一: 过滤身份证号码信息, 将正确的身份证信息进行过滤
测试文件信息
老男孩 110109197706078765
老女孩 105110111100281236
老狗 oldboy
张三 117237
李四 123123oldboy
王五 123123619230917203710237[root@oldboy69 oldboy 10:12:09]# grep -E ‘[0-9]{18}’ test03.txt
老男孩 110109197706078765
老女孩 105110111100281236
王五 123123619230917203710237
[root@oldboy69 oldboy 10:12:20]# grep -Ew ‘[0-9]{18}’ test03.txt
老男孩 110109197706078765
老女孩 105110111100281236练习二: 如何取出文件权限数值
思路一: 什么命令可以显示文件权限
stat /etc/hosts思路二: 取出有目标信息行
stat /etc/hosts|grep Uid
思路三:取出行中的指定信息
stat /etc/hosts|grep Uid|grep -E “[0-7]{4}” -o
ip a s eth0|grep "inet "|grep -E “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}” -o|head -1
10.0.0.200
ip a s eth0|grep "inet "|grep -E “([0-9]{1,3}.){3}[0-9]{1,3}” -o
练习四:取出磁盘使用率
df -h|grep /dev/sda3|grep -E “[0-9]{1,3}%” -o
2%
说明:正则匹配一行信息时,默认有贪婪特性课程知识总结:
系统正则符号:
基础正则:7 ^ $ . * [] [^] \
扩展正则:5 + ? {} () |
作业:
- 取出正确的身份证号, 利用正则符号
老男孩 110109197706078765
老女孩 105110111100281236
老宝贝 10511011110028123X
老宝贝 1051101X1100281230
老狗 oldboy
张三 117237
李四 123123oldboy
王五 123123619230917203710237
作业:
系统中文件硬链接数默认是多少 目录硬链接数默认是多少?
默认1个 默认是2个
目录硬链接数为什么是2?思路一: 掌握什么是硬链接概念
inode号码相同文件数据, 互为硬链接
思路二: 理解系统中两个符号作用
…/ – 表示上级目录
./ – 表示当前目录
扩展:
01: dd if=/dev/zero of=/oldboy/oldboy03.txt bs=150M count=10 什么作用
02: 和find命令有关, 排除指定目录不要进行搜索
[root@oldboy69 oldgirl 00:07:50]# tree
.
├── bin
│?? └── oldboy.sh
├── cache — 排除cache目录不要进行搜索
│?? └── oldboy.m
├── conf
│?? └── oldboy.conf
└── log
└── oldboy.log
4 directories, 4 files方法一: 利用find命令 取反操作 ! -not
# find /oldboy ! -path "/oldboy/oldboy02/*" -name "oldgirl02.txt"
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy03/oldgirl02.txt
方法二: 利用find命令 -prune 修剪 -print 输出
[root@oldboy69 oldboy 23:12:38]# find /oldboy -path "/oldboy/oldboy02"
/oldboy/oldboy02
[root@oldboy69 oldboy 23:14:08]# find /oldboy -path "/oldboy/oldboy02" -o -name "oldgirl02.txt"
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy02
/oldboy/oldboy02/oldgirl02.txt
/oldboy/oldboy03/oldgirl02.txt
[root@oldboy69 oldboy 23:14:36]# find /oldboy -path "/oldboy/oldboy02" -prune -o -name "oldgirl02.txt"
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy02
/oldboy/oldboy03/oldgirl02.txt
[root@oldboy69 oldboy 23:15:29]# find /oldboy -path "/oldboy/oldboy02" -prune -o -name "oldgirl02.txt" -print
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy03/oldgirl02.txt
03: 压缩/oldboy目录, 生成一个oldboy.tar.gz压缩包, 将压缩包报文在/backup
需要排除/oldboy/oldboy01目录 /oldboy/oldboy02目录不要被压缩打包
# tar zcvf /backup/oldboy.tar.gz /oldboy --exclude=oldboy02
tar: Removing leading `/’ from member names
/oldboy/
/oldboy/oldboy01/
/oldboy/oldboy01/oldgirl01.txt
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy01/oldgirl03.txt
/oldboy/oldboy03/
/oldboy/oldboy03/oldgirl01.txt
/oldboy/oldboy03/oldgirl02.txt
/oldboy/oldboy03/oldgirl03.txt
作业:
- 如何利用find命令将数据找出来, 进行批量复制或移动操作(三种方法)
- 将目录中以oldboy开头的文件信息, 进行批量压缩
预习:
1 文件属性 inode索引信息 block块信息
2.文件属性 软链接/硬链接
操作系统正则符号知识点总结相关推荐
- 操作系统基础符号与正则符号
文章目录 01.知识概述部分 02.知识回顾说明 03.系统基础符号系列 1)基础符号系列 美元符号:$ 叹号符号:! 竖线符号:| 井号符号:# 2)引号符号系列 引号符号: 3)定向符号系列 4) ...
- 北京理工大学操作系统复习——习题+知识点
文章目录 传送门 前言 ppt习题+课后习题汇总 第1章 操作系统概论 操作系统性能指标计算 第2章 进程管理 进程调度算法 课后2-9:最短作业优先 课后2-12:四种算法比较 课后2-13:轮转与 ...
- 第四周总结(文件属性正则符号三剑客 )
一. 文件属性分类 文件属性分类:索引信息属主信息属组信息软硬链接时间信息权限信息类型信息大小信息[root@shiyi ~ 15:24:28]# ll -i /bonian/ 51206131 d ...
- 找工作笔试面试那些事儿(13)---操作系统常考知识点总结
上一节对数据库的知识做了一个小总结,实际找工作过程中,因为公司或单位侧重点不一样,考察的知识也是不尽相同的,但是作为计算机类的学生,操作系统的知识也是必不可少的,去年参加笔试面试的时候,腾讯微软阿里等 ...
- 常用的正则符号(python)
常用的正则符号(python) 1. 原字符 指代直接存在于字符串内部的子串. s1 = '通过几天Python的学习,感觉Python很简单,非常容易上手!' re.findall('Python' ...
- 第五章:正则表达式的使用-常用的正则符号(二)
直接学习:https://edu.csdn.net/course/play/6861/335840 常用的正则符号(二): #6.英文状态下的问号? 表匹配前一个字符0次或1次 #超链接的匹配 url ...
- 1. 系统符号与正则符号
系统符号与正则符号 系统符号 系统基础符号 基础正则符号 扩展正则符号 系统符号 系统基础符号 美元符号:$ · 用于取出变量中的内容· 表示用户命令提示符号普通用户为 $ (超级用户为 #)· 表示 ...
- 系统特殊符号、通配符号、正则符号、find、grep、sed、awk命令(总结)
目录 一.常见系统特殊符号 (一)基础符号系列 1)美元符号 $ 2)叹号符号 ! 3)竖线符号 | 4)井号符号 # (二)引号符号系列 (三)定向符号系列 (四)路径符号系列 (五)逻辑符 ...
- python中的正则匹配知识点
@author: fighter Python正则表达式知识点整理. 概述:在处理字符串时,经常会遇到查找符合某些复杂规则字符串的需求,正则表达式就是用于描述这些规则的工具. 首先,我们先掌握一下py ...
最新文章
- Visual Studio插件
- 无线WEP网络***
- 干货:如何正确描述存储IO类型?
- python改文件名_python批量修改文件名、批量修改xml文件的path和filename
- Linux内核参数的介绍
- java system类_Java System类mapLibraryName()方法及示例
- 初探PostgreSql
- 面试题 04.06. 后继者
- java四类八种_java四类八种基本数据类型
- vs2013实现duilib结合cef的demo
- 聚类模型ari_7.9 聚类模型评估
- 微信小程序开发之路(3)— 添加一个Button按钮点击事件
- oracle if else怎么用,oracle if else语句使用介绍
- Golang入门,安装与环境配置,简单代码入门
- 七牛云的存储对象的地区对应表
- ConditionalOnMissingBean失效问题追踪
- 1334177-87-5,Cbz-N-amido-PEG8-acid含有Cbz保护的氨基和末端羧酸的PEG连接物
- Tableau权限设置
- 什么叫做POJO类?
- 一些关于网页设计的优秀网站