正则表达式字符集与test判断语句参数总结
在学习正则表达式和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行:
|
? |
意义:【零个或一个】的前一个字符 eg:查找ggle和gogle这两个字符串。o?代表【空的或1个o】,所以下面的执行结果为打印出1、2行:
|
| |
意义:用或(or)的方式找出数个字符串 eg:查找ggle和google这两个字符串,注意,’|‘代表的式或的关系,所以下面的执行结果为打印出1、3行:
|
() |
意义:找出群组字符串 eg:查找google和g00gle这两个字符串,以位g与gle是相同的,所以我们可以i将00与oo列于()中,并用 |分开,就可以打印该组合:
|
()+ |
意义:多个重复群组的判别 eg;将[googlegleglegoo]用echo打印出来:
上面例子意思是说,找开头是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判断语句参数总结相关推荐
- shell 编程 判断语句参数
shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathn ...
- WDL 流程语言编写及进阶(标准结构/线性输入输出/默认参数设置/判断语句)
目录 简介 1.WDL 的标准结构 2.进阶版:线性输入 3.进阶版:默认参数输入如何设置 4.进阶版:判断功能 简介 WDL 定义了一个可执行的流程,它由call调用的一系列task组成,task ...
- 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】
⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...
- qmake language qt 工程文件 配置文件 .pro .prl .prf .pri 词法 语法 for循环 判断语句 函数定义
目录 词法 string 1.数据类型 2.特殊处理的内置变量 3.转义字符 关键字:包括语法关键字.特殊变量 语法 变量 变量.属性.环境变量 变量使用 全局变量作用域 函数定义和使用 判断语句和循 ...
- jsp判断语句_Java的web展现层JSP的JSTL标签详细总结
<大数据和人工智能交流>头条号向广大初学者新增C .Java .Python .Scala.javascript 等目前流行的计算机.大数据编程语言,希望大家以后关注本头条号更多的内容. ...
- java设计模——反射的应用 (利用反射来去除if判断语句)
利用反射来去除if判断语句 我的以前写的一个查分系统,就是部长让我写的那个,使用一个分发器(函数),他会根据传递进来的字符串参数调用不同的方. If("add".equalsIgn ...
- shell编程之条件判断语句和流程控制语句
shell条件判断语句和流程控制语句 文章目录 shell条件判断语句和流程控制语句 一.条件判断语法结构 1. 条件判断语法格式 2. 条件判断相关参数 二.流程控制语句 1. 基本语法结构 2. ...
- 求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 ...
- c语言条件判断!,if条件判断语句,谁能帮我分析一下?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 测试平台是一个stm32f103zet6的ARM芯片, 我这里只是把它当作单片机来用,下面的程序是平台提供的,可以正常使用,有几个地方不能理解! //mo ...
最新文章
- BCH的去中心化理念自治
- mysql keepalived_mysql高可用+keepalived
- 累计占比_全国ETC用户累计突破1亿!广东占比超过1/10
- knockoutjs ajax分页,KnockoutJS 3.X API 第四章之数据控制流foreach绑定
- 为什么`malloc`出来的内存也能当成对象正常使用
- [BZOJ 3931][CQOI2015]网络吞吐量(SPFA+网络流)
- Table accessed during One order advanced search
- 怎么将小部件图标添加回Windows11任务栏
- conda安装tensorflow-gpu
- linux内核rest_init分析
- postfix+web页面+身份验证
- java基础之static
- 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
- 华为软件测试工程职责,【什么是软件测试】华为2021年软件测试岗位职责-看准网...
- 中国人口总数、老龄人口占比及2040人口年龄结构变化预测
- 大多数人奋斗一辈子才能得到的东西,你见过吗?
- 计算机视觉论文-2021-07-30
- 解决minGW32-make 编译opencv时 error: ‘std::_hypot‘ has not been declared using std::hypot;
- java创建response对象_创建一个HttpResponse对象
- input表单元素required用法