当前位置:网站首页>正则表达式的实际使用
正则表达式的实际使用
2022-08-09 22:10:00 【勾栏听曲_0】
目录
find命令
语法
find是在一个文件系统中查找指定的文件或者目录,find命令的语法是
find [path ] [options]path :指定要搜索的路径,如果省略则在当前路径下查找
参数说明
| 参数 | 含义 |
mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
-amin n | 在过去 n 分钟内被读取过 |
-anewer file | 比文件 file 更晚被读取过的文件 |
| -atime n | 在过去 n 天内被读取过的文件 |
| -cmin n | 在过去 n 分钟内被修改过 |
| -cnewer file | 比文件 file 更新的文件 |
| -ctime n | 在过去 n 天内创建的文件 |
| -mtime n | 在过去 n 天内修改过的文件 |
| -empty | 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name |
-ipath p, -path p | 路径名称符合 p 的文件,ipath 会忽略大小写 |
-name name, -iname name | 文件名称符合 name 的文件。iname 会忽略大小写 |
-size n | 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。 |
| type c | 文件类型是 c 的文件。 |
find中正则表达式的运用
#将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"
#将当前目录及其子目录中的所有文件列出:
find . -type f
#将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime 20
#查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;
#查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;
#查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;grep命令
grep(egrep)用来在一个文本文件(字符串)查找一个特定的字符串的。egrep 是用扩展的正则表达式去查找
语法:
grep options [正则表达式] files在files列举的所有文件里面,查找以正则表达式所描述的字符串
参数说明
-n 显示查找到的字符串所在的行号
-E 用扩展的正则表达式
grep -E ==>egrep
-i ignore 在字符串查找时忽略大小写
-i "main"
[mM][aA][iI][nN]
-# 表示同时显示匹配的上下#行
-c count 打印每个文件匹配行的个数
-H 显示文件名
-h 不显示文件名
grep中正则表达式的运用
grep test *file #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep -r update /etc/acpi #查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容
grep -v test *test* #反向查找,查找文件名中包含 test 的文件中不包含test 的行实际使用案例
[a-z] // 匹配所有的小写字母
[A-Z] // 匹配所有的大写字母
[a-zA-Z] // 匹配所有的字母
[0-9] // 匹配所有的数字
[0-9\.\-] // 匹配所有的数字,句号和减号
[ \f\r\t\n] // 匹配所有的白字符
[^a-z] //除了小写字母以外的所有字符
[^\\\/\^] //除了(\)(/)(^)之外的所有字符
[^\"\'] //除了双引号(")和单引号(')之外的所有字符
^[a-zA-Z0-9_]{1,}$ // 所有包含一个以上的字母、数字或下划线的字符串
^[1-9][0-9]{0,}$ // 所有的正整数
^\-{0,1}[0-9]{1,}$ // 所有的整数
^[-]?[0-9]+\.?[0-9]+$ // 所有的浮点数| 正则表达式 | 描述 |
| /\b([a-z]+) \1\b/gi | 一个单词连续出现的位置。 |
| /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ | 匹配一个 URL 解析为协议、域、端口及相对路径。 |
| /^(?:Chapter|Section) [1-9][0-9]{0,1}$/ | 定位章节的位置。 |
| /[-a-z]/ | a 至 z 共 26个 字母再加一个 - 号。 |
| /ter\b/ | 可匹配 chapter,而不能匹配 terminal。 |
| /\Bapt/ | 可匹配 chapter,而不能匹配 aptitude。 |
| /Windows(?=95 |98 |NT )/ | 可匹配 Windows95 或 Windows98 或 WindowsNT,当找到一个匹配后,从 Windows 后面开始进行下一次的检索匹配。 |
| /^\s*$/ | 匹配空行。 |
| /\d{2}-\d{5}/ | 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 |
| <[a-zA-Z]+.*?>([\s\S]*?) | 匹配 HTML 标记。 |
| 正则表达式 | 描述 |
| hello | 匹配 {hello} |
| gray|grey | 匹配 {gray, grey} |
| gr(a|e)y | 匹配 {gray, grey} |
| gr[ae]y | 匹配 {gray, grey} |
| b[aeiou]bble | 匹配 {babble, bebble, bibble, bobble, bubble} |
| [b-chm-pP]at|ot | 匹配 {bat, cat, hat, mat, nat, oat, pat, Pat, ot} |
| colou?r | 匹配 {color, colour} |
| rege(x(es)?|xps?) | 匹配 {regex, regexes, regexp, regexps} |
| go*gle | 匹配 {ggle, gogle, google, gooogle, goooogle, ...} |
| go+gle | 匹配 {gogle, google, gooogle, goooogle, ...} |
| g(oog)+le | 匹配 {google, googoogle, googoogoogle, googoogoogoogle, ...} |
| z{3} | 匹配 {zzz} |
| z{3,6} | 匹配 {zzz, zzzz, zzzzz, zzzzzz} |
| z{3,} | 匹配 {zzz, zzzz, zzzzz, ...} |
| [Bb]rainf\*\*k | 匹配 {Brainf**k, brainf**k} |
| \d | 匹配 {0,1,2,3,4,5,6,7,8,9} |
| 1\d{10} | 匹配 11 个数字,以 1 开头 |
| [2-9]|[12]\d|3[0-6] | 匹配 2 到 36 范围内的整数 |
| Hello\nworld | 匹配 Hello 后跟换行符,后跟 world |
| \d+(\.\d\d)? | 包含一个正整数或包含两位小数位的浮点数。 |
| [^*@#] | 排除 *、@ 、# 三个特色符号 |
| //[^\r\n]*[\r\n] | 匹配 // 开头的注释 |
| ^dog | 匹配以 "dog" 开始 |
| dog$ | 匹配以 "dog" 结尾 |
| ^dog$ | is exactly "dog" |
边栏推荐
猜你喜欢
随机推荐
Basic operations of xlrd and xlsxwriter
继承关系下构造方法的访问特点
(转)FreeType字体位图属性
月薪5K的运维小白如何成为月薪5W的高级架构师?
R语言ggplot2可视化:使用ggplot2可视化散点图、使用labs参数自定义Y轴的轴标签文本(customize Y axis labels)
R语言ggstatsplot包grouped_ggscatterstats函数可视化分组散点图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)
chart.js面积图曲线图统计插件
使用股票量化交易接口需要具备怎么样的心态
Leetcode 701. 二叉搜索树中的插入操作
Cesium渐变色3dtiles白模(视频)
Qt message mechanism and events
leetcode:286.墙和门
Leetcode 236. 二叉树的最近公共祖先
“我“是一名测试/开发程序员,小孙的内心独白......
(转)字符集编码标识符,数字表示字符编码
Install win7 virtual machine in Vmware and related simple knowledge
daemon
k8s部署mysql
信息系统项目管理师---第十一章项目风险管理历年考题
生成NC文件时,报错“未定义机床”









