在学习正则表达式和test判断语句时,存在大量的特殊符号和参数,如果对这些特殊符号和参数不熟悉,将会导致我们学习这部分内容时遇到种种困难,参考相关资料和老师所教,对该部分内容做了总结,方便学习和记忆:

一,基本正则表达式特殊符号总结:

基本正则表达式特殊符号
特殊符号                                  代表意义
[:alnum:] 代表英文大小写及数字,即0~9、a~z、A~Z
[:alpha:] 代表任何英文大小写字符,即a~z、A~Z
[:blank:] 代表空格键与【Tab】按键两者
[:cntr:] 代表键盘上面控制按键,包括Tab、Del等
[:digit:] 代表数字,即0~9
[:graph:] 除了空格符(空格键与[Tab]按键)外的其他所有按键
[:lower:] 代表小写字母,即a~z
[:print:] 代表可以被打印的字符
[:punct:] 代表标点符号,即“ ‘ ?!;:# $
[:upper:] 代表大写字母,即A~Z
[:space:] 任何会产生空白的字符,包括空格键、[Tab]等
[:xdigt:] 代表十六进制的数字类型,包括0~9、A~F、a~f等

二,扩展正则表达式特殊符号总结:

扩展表达式特殊符号
字符                              意义与范例
+

意义:重复【一个或一个一个以上】的前一个字符

eg:查找gogle,google,goooogle等的字符串。o+即代表【一个以上的o】;所以下面的执行结果为打印出2、3、4行:

[20:30:21 root@centos7 shiyan]#cat f11.txt
ggle
gogle
google
gooogle
g0000gle[20:30:25 root@centos7 shiyan]#egrep -n 'go+gle' f11.txt
2:gogle
3:google
4:gooogle

意义:【零个或一个】的前一个字符

eg:查找ggle和gogle这两个字符串。o?代表【空的或1个o】,所以下面的执行结果为打印出1、2行:

[20:39:38 root@centos7 shiyan]#cat f11.txt
ggle
gogle
google
gooogle
g0000gle[20:39:42 root@centos7 shiyan]#egrep -n 'go?gle' f11.txt
1:ggle
2:gogle
|

意义:用或(or)的方式找出数个字符串

eg:查找ggle和google这两个字符串,注意,’|‘代表的式或的关系,所以下面的执行结果为打印出1、3行:

[20:45:10 root@centos7 shiyan]#cat f11.txt
ggle
gogle
google
gooogle
g0000gle[20:45:18 root@centos7 shiyan]#egrep -n 'ggle|google' f11.txt
1:ggle
3:google
()

意义:找出群组字符串

eg:查找google和g00gle这两个字符串,以位g与gle是相同的,所以我们可以i将00与oo列于()中,并用 |分开,就可以打印该组合:

[20:51:03 root@centos7 shiyan]#cat f11.txt
ggle
gogle
google
gooogle
g0000gle
g00gle[20:51:08 root@centos7 shiyan]#egrep -n 'g(00|oo)gle' f11.txt
3:google
6:g00gle
()+

意义:多个重复群组的判别

eg;将[googlegleglegoo]用echo打印出来:

[20:52:18 root@centos7 shiyan]#echo googlegleglegoo |egrep 'goo(gle)+goo'
googlegleglegoo

上面例子意思是说,找开头是goo,结尾是goo,中间有一个以上的gle字符串的意思。

三,test判断语句参数:

1,关于某个文件名的【文件类型的判断】,如test -e filename表示文件是否存在:

参数                                   代表的意义
-e 该【文件名】是否存在(常用)
-f 该【文件名】是否存在且为文件(file)(常用)
-d 该【文件名】是否存在且为目录(directory)(常用)
-b 该【文件名】是否存在且为一个block device设备
-c 该【文件名】是否存在且为一个character device设备
-S 该【文件名】是否存在且为一个socket文件
-p 该【文件名】是否存在且为一个FIFO(匹配)设备
-L 该【文件名】是否存在且为一个链接文件

2,关于文件权限的检测,如test -r filename 表示是否可读:

参数                                        代表意义
-r 检测该文件是否存在且具有【可读】的权限
-w 检测该文件是否存在且具有【可写】的权限
-x 检测该文件是否存在且具有【可执行】的权限
-u 检测该文件是否存在且具有【SUID】的属性
-g 检测该文件是否存在且具有【SGID】的属性
-k 检测该文件是否存在且具有【Sticky】的属性
-s 检测该文件是否存在且具为【非空文件】

3,两个文件之间的比较,如:test file1 -nt file2:

参数                                     代表意义
-nt (newer than )判断file1是否比file2新
-ot (older than)判断file1是否比file2旧
-ef 判断file1与file2是否为同一文件,可用在判断hard link 的判断上。主要意义是判定,两个文件是否指向同一个inode

4,关于两个整数之间的判定,例如test n1 -eq n2 :

参数                                       代表意义
-eq 两个数值相等(equal)
-ne 两个数值不等(not equal)
-gt n1大于n2(greater than)
-lt n1小于n2   (less than)
-ge n1大于等于n2 (greater than or equal)
-le n1小于等于n2 (less than or equal)

5,判定字符串的数据:

参数                         代表意义
test -z string 判断字符串是否为0?若string为空字符串,则为true
test -n string  判断字符串是否非为0?若string为空字符串,则为false
test str1==str2 判定str1是否等于str2,若相等,则返回true
test str1!=str2 判定str1是否不等于str2,若相等,则返回false

6,多重条件判定,例如:test -r filename -a -x filename

参数 代表意义
-a [and]两条件同时成立。例如test -r file -a -x file,表示file同时具有了r与x权限时,才返回true
-o (or)两条件任一个成立。例如test -r file -o -x file,则file同时具有r或x权限时,就可返回true
反相状态,例如test  ! -x file,当file不具有x权限时,返回true

正则表达式字符集与test判断语句参数总结相关推荐

  1. shell 编程 判断语句参数

    shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathn ...

  2. WDL 流程语言编写及进阶(标准结构/线性输入输出/默认参数设置/判断语句)

    目录 简介 1.WDL 的标准结构 2.进阶版:线性输入 3.进阶版:默认参数输入如何设置 4.进阶版:判断功能 简介 WDL 定义了一个可执行的流程,它由call调用的一系列task组成,task ...

  3. 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】

    ⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...

  4. qmake language qt 工程文件 配置文件 .pro .prl .prf .pri 词法 语法 for循环 判断语句 函数定义

    目录 词法 string 1.数据类型 2.特殊处理的内置变量 3.转义字符 关键字:包括语法关键字.特殊变量 语法 变量 变量.属性.环境变量 变量使用 全局变量作用域 函数定义和使用 判断语句和循 ...

  5. jsp判断语句_Java的web展现层JSP的JSTL标签详细总结

    <大数据和人工智能交流>头条号向广大初学者新增C .Java .Python .Scala.javascript 等目前流行的计算机.大数据编程语言,希望大家以后关注本头条号更多的内容. ...

  6. java设计模——反射的应用 (利用反射来去除if判断语句)

    利用反射来去除if判断语句 我的以前写的一个查分系统,就是部长让我写的那个,使用一个分发器(函数),他会根据传递进来的字符串参数调用不同的方. If("add".equalsIgn ...

  7. shell编程之条件判断语句和流程控制语句

    shell条件判断语句和流程控制语句 文章目录 shell条件判断语句和流程控制语句 一.条件判断语法结构 1. 条件判断语法格式 2. 条件判断相关参数 二.流程控制语句 1. 基本语法结构 2. ...

  8. 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

    求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C) 文章目录 求1+2+3+...+n,要求不能使用乘除法.for ...

  9. c语言条件判断!,if条件判断语句,谁能帮我分析一下?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 测试平台是一个stm32f103zet6的ARM芯片, 我这里只是把它当作单片机来用,下面的程序是平台提供的,可以正常使用,有几个地方不能理解! //mo ...

最新文章

  1. BCH的去中心化理念自治
  2. mysql keepalived_mysql高可用+keepalived
  3. 累计占比_全国ETC用户累计突破1亿!广东占比超过1/10
  4. knockoutjs ajax分页,KnockoutJS 3.X API 第四章之数据控制流foreach绑定
  5. 为什么`malloc`出来的内存也能当成对象正常使用
  6. [BZOJ 3931][CQOI2015]网络吞吐量(SPFA+网络流)
  7. Table accessed during One order advanced search
  8. 怎么将小部件图标添加回Windows11任务栏
  9. conda安装tensorflow-gpu
  10. linux内核rest_init分析
  11. postfix+web页面+身份验证
  12. java基础之static
  13. 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
  14. 华为软件测试工程职责,【什么是软件测试】华为2021年软件测试岗位职责-看准网...
  15. 中国人口总数、老龄人口占比及2040人口年龄结构变化预测
  16. 大多数人奋斗一辈子才能得到的东西,你见过吗?
  17. 计算机视觉论文-2021-07-30
  18. 解决minGW32-make 编译opencv时 error: ‘std::_hypot‘ has not been declared using std::hypot;
  19. java创建response对象_创建一个HttpResponse对象
  20. input表单元素required用法

热门文章

  1. C计算1970年到现在时间的秒数
  2. 项目资源管理的流程、技术和工具
  3. crc16校验c语言程序源码,CRC16代码(C语言实现)
  4. Android POI 百度地图——周边检索
  5. 惠普HP Color LaserJet Pro M454dn 打印机驱动
  6. iOS开发 - 使用自定义字体
  7. 每日一题【35】解析几何-抛物线的焦点弦长公式
  8. 分享一波学习编程刷题网站
  9. Direct2D 1.1 开发笔记 特效篇(一) 使用D2D特效
  10. 中国石油大学《计算机应用基础》第二阶段在线作业