当前位置:首页 » 编程软件 » 脚本正则表达式

脚本正则表达式

发布时间: 2022-10-07 16:31:22

‘壹’ sh脚本里怎样用正则表达式

sh脚本里可以调用sed,awk,grep,perl之类的命令来使用正则表达式。

如果是bash 3.0脚本,支持进程内的正则表达式,使用下面的语法:

[[ string =~ regex ]]

if[[abcfoobarbletch=~'foo(bar)bl(.*)']]
then
echoTheregexmatches!
echo$BASH_REMATCH--outputs:foobarbletch
echo${BASH_REMATCH[1]}--outputs:bar
echo${BASH_REMATCH[2]}--outputs:etch
fi

使用这个语法的性能要比生成一个新的进程来运行grep命令优越,因为正则表达式匹配在bash进程内完成。如果正则表达式或者字符串包括空格或者shell 关键字,(诸如'*'或者'?'),就需要用引号包裹。

‘贰’ 如何在Jenkins Ant脚本中使用正则表达式

引用自(图文并茂):
http://jingyan..com/article/380abd0a6c6e7d1d90192cb4.html

具体步骤:
下载并安装一个Jenkins服务器,它是开源的,可以从如下地址了解并下载安装:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins
步骤阅读
2
进入Jenkins服务器磁盘系统,新建一个文件夹,并在里面建立两个文件:
1. CmdOutput.txt 文件,存放测试数据的一个文件;
2. BuildTest.xml 文件,用来执行构建的ant脚本文件。
步骤阅读
3
打开 CmdOutput.txt 文件,输入类似如下的测试数据:

RunTest output: Begin to start TestExecute/TestComplete Instance on remote computer ...*
TestExecute.TestExecuteApplication.10
Begin to open TestExecute/TestComplete project suite on remote computer ...*
2

后面的Ant脚本将会先加载读取这个文件的内容,然后把最后一行的返回代码“2”提取出来.
步骤阅读
4
打开 BuildTest.xml 文件,输入如下的Ant脚本。里面将会使用propertyregex来提取返回代码,其中property用来指定提取到的值存放在什么属性里面,input用来指定匹配来源,regexp用来指定正则表达式,select用来指定选择哪个匹配子项,casesensitive指定是否区分大小写。:

<project name="hello" basedir="." default="Test" xmlns:props="antlib:org.apache.ant.props">

<property environment="JenkinsEnv"/>

<!--
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>
-->

<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>

<typedef uri="antlib:org.apache.ant.props" resource="org/apache/ant/props/antlib.xml" classpath="${JenkinsEnv.ANT_HOME}\\ant-props-1.0Alpha.jar" />
<propertyhelper>
<props:nested/>
</propertyhelper>

<!-- *********************************************** -->

<target name="GetReturnCode">
<loadfile property="CmdOutput" srcFile="CmdOutput.txt"/>
<echo message="CmdOutput: ${CmdOutput}" />
<propertyregex property="ResultCode"
input="${CmdOutput}"
regexp="^([\s\S]*)(\r?\n)+(\d{1,})(\r?\n)*"
select="\3"
casesensitive="false" />
<echo message="ResultCode: ${ResultCode}" />
</target>

</project>
步骤阅读
5
在Jenkins服务器上建立一个TEST的Job,然后点击配置按钮:
步骤阅读
6
在构建的标签处,添加一个Invoke Ant,然后分别输入要构建的Ant脚本文件,和要跑的任务Target:
步骤阅读
7
点击保存按钮保存上一步做的配置,然后点击Build Now按钮开始构建Job:
步骤阅读
8
构建完毕之后,把鼠标放到构建记录上面,点击下拉箭头,弹出菜单中选择“Console Output”查看控制台输出:
步骤阅读
9
结果页面中,前面 CmdOutput.txt 文件中的返回代码“2”被提取并显示出来了:
步骤阅读
END

‘叁’ 脚本正则表达式

-v host=$(hostname) 是变量设置,将shell中的变量值【$(hostname)】 赋值给 awk中的变量【host】
后面单引号中的 / / 之间的内容【/^$/ 、/Linux/、/pgpgin/】都是正则表达式
>后面的是路径和文件【输出位置】

‘肆’ 如何在Jenkins Ant脚本中使用正则表达式

方法/步骤

1
下载并安装一个Jenkins服务器,它是开源的,可以从如下地址了解并下载安装(如图):
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins

2
进入Jenkins服务器磁盘系统,新建一个文件夹,并在里面建立两个文件(如图):
1. CmdOutput.txt 文件,存放测试数据的一个文件;
2. BuildTest.xml 文件,用来执行构建的ant脚本文件。

3
打开 CmdOutput.txt 文件,输入类似如下的测试数据(如图):
RunTest output: Begin to start TestExecute/TestComplete Instance on remote computer ...*
TestExecute.TestExecuteApplication.10
Begin to open TestExecute/TestComplete project suite on remote computer ...*
2
后面的Ant脚本将会先加载读取这个文件的内容,然后把最后一行的返回代码“2”提取出来.

4
打开 BuildTest.xml 文件,输入如下的Ant脚本(如图)。里面将会使用propertyregex来提取返回代码,其中property用来指定提取到的值存放在什么属性里面,input用来指定匹配来源,regexp用来指定正则表达式,select用来指定选择哪个匹配子项,casesensitive指定是否区分大小写。:
<project name="hello" basedir="." default="Test" xmlns:props="antlib:org.apache.ant.props">
<property environment="JenkinsEnv"/>

<!--
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>
-->

<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>

<typedef uri="antlib:org.apache.ant.props"
resource="org/apache/ant/props/antlib.xml"
classpath="${JenkinsEnv.ANT_HOME}\\ant-props-1.0Alpha.jar" />
<propertyhelper>
<props:nested/>
</propertyhelper>

<!-- *********************************************** -->

<target name="GetReturnCode">
<loadfile property="CmdOutput" srcFile="CmdOutput.txt"/>
<echo message="CmdOutput: ${CmdOutput}" />
<propertyregex property="ResultCode"
input="${CmdOutput}"
regexp="^([\s\S]*)(\r?\n)+(\d{1,})(\r?\n)*"
select="\3"
casesensitive="false" />
<echo message="ResultCode: ${ResultCode}" />
</target>
</project>

5
在Jenkins服务器上建立一个TEST的Job,然后点击配置按钮(如图):

6
在构建的标签处,添加一个Invoke Ant,然后分别输入要构建的Ant脚本文件,和要跑的任务Target(如图):

7
点击保存按钮保存上一步做的配置,然后点击Build Now按钮开始构建Job(如图):

8
构建完毕之后,把鼠标放到构建记录上面,点击下拉箭头,弹出菜单中选择“Console Output”查看控制台输出(如图):

9
结果页面中,前面 CmdOutput.txt 文件中的返回代码“2”被提取并显示出来了(如图):

http://jingyan..com/article/380abd0a6c6e7d1d90192cb4.html

‘伍’ 正则表达式和shell脚本的关系

简而言之:
shell脚本中往往涉及大量字符串处理工作,而正则表达式就是为了帮助分析字符串格式是否匹配你的要求;正则替换可以实现替换字符串中符合正则要求的部分,使用起来非常灵活。
可以说,掌握了正则表达式,你的shell脚本水平就上了一个台阶。

‘陆’ shell脚本和正则表达式有什么不同

不一样的东东。shell脚本是为shell编写的自动执行命令的集合,是一种编程语言。而正则表达式则是用于文本搜索匹配的一种非常强大的字符串查找工具。两者不是一样的,shell脚本中可以使用正则表达式,Javascript脚本也可以使用正则表达式,Php,asp,C,C++和C#,Java等编程语言也都可以使用正则表达式。

‘柒’ 如何在Jenkins Ant脚本中使用正则表达式

方法/步骤

1
下载并安装一个Jenkins服务器,它是开源的,可以从如下地址了解并下载安装。

2
进入Jenkins服务器磁盘系统,新建一个文件夹,并在里面建立两个文件
1) CmdOutput.txt 文件,存放测试数据的一个文件;
2) BuildTest.xml 文件,用来执行构建的ant脚本文件。

3
打开 CmdOutput.txt 文件,输入类似如下的测试数据
RunTest output: Begin to start TestExecute/TestComplete Instance on remote computer ...*
TestExecute.TestExecuteApplication.10
Begin to open TestExecute/TestComplete project suite on remote computer ...*
2
后面的Ant脚本将会先加载读取这个文件的内容,然后把最后一行的返回代码“2”提取出来.

4
打开 BuildTest.xml 文件,输入如下的Ant脚本。里面将会使用propertyregex来提取返回代码,其中property用来指定提取到的值存放在什么属性里面,input用来指定匹配来源,regexp用来指定正则表达式,select用来指定选择哪个匹配子项,casesensitive指定是否区分大小写。:
<project name="hello" basedir="." default="Test" xmlns:props="antlib:org.apache.ant.props">
<property environment="JenkinsEnv"/>

<!--
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>
-->

<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>

<typedef uri="antlib:org.apache.ant.props"
resource="org/apache/ant/props/antlib.xml"
classpath="${JenkinsEnv.ANT_HOME}\\ant-props-1.0Alpha.jar" />
<propertyhelper>
<props:nested/>
</propertyhelper>

<!-- *********************************************** -->

<target name="GetReturnCode">
<loadfile property="CmdOutput" srcFile="CmdOutput.txt"/>
<echo message="CmdOutput: ${CmdOutput}" />
<propertyregex property="ResultCode"
input="${CmdOutput}"
regexp="^([\s\S]*)(\r?\n)+(\d{1,})(\r?\n)*"
select="\3"
casesensitive="false" />
<echo message="ResultCode: ${ResultCode}" />
</target>
</project>

5
在Jenkins服务器上建立一个TEST的Job,然后点击配置按钮:

6
在构建的标签处,添加一个Invoke Ant,然后分别输入要构建的Ant脚本文件,和要跑的任务Target:

7
点击保存按钮保存上一步做的配置,然后点击Build Now按钮开始构建Job:

8
构建完毕之后,把鼠标放到构建记录上面,点击下拉箭头,弹出菜单中选择“Console Output”查看控制台输出:

9
结果页面中,前面 CmdOutput.txt 文件中的返回代码“2”被提取并显示出来了。

‘捌’ 如何在Jenkins Ant脚本中使用正则表达式

引用自(图文并茂):
http://jingyan..com/article/380abd0a6c6e7d1d90192cb4.html

具体步骤:
下载并安装一个Jenkins服务器,它是开源的,可以从如下地址了解并下载安装:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins

进入Jenkins服务器磁盘系统,新建一个文件夹,并在里面建立两个文件:
1. CmdOutput.txt 文件,存放测试数据的一个文件;
2. BuildTest.xml 文件,用来执行构建的ant脚本文件。

打开 CmdOutput.txt 文件,输入类似如下的测试数据:

RunTest output: Begin to start TestExecute/TestComplete Instance on remote computer ...*
TestExecute.TestExecuteApplication.10
Begin to open TestExecute/TestComplete project suite on remote computer ...*
2

后面的Ant脚本将会先加载读取这个文件的内容,然后把最后一行的返回代码“2”提取出来.

打开 BuildTest.xml 文件,输入如下的Ant脚本。里面将会使用propertyregex来提取返回代码,其中property用来指定提取到的值存放在什么属性里面,input用来指定匹配来源,regexp用来指定正则表达式,select用来指定选择哪个匹配子项,casesensitive指定是否区分大小写。:

<project name="hello" basedir="." default="Test" xmlns:props="antlib:org.apache.ant.props">

<property environment="JenkinsEnv"/>

<!--
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>
-->

<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${JenkinsEnv.ANT_HOME}\\ant-contrib.jar"/>
</classpath>
</taskdef>

<typedef uri="antlib:org.apache.ant.props" resource="org/apache/ant/props/antlib.xml" classpath="${JenkinsEnv.ANT_HOME}\\ant-props-1.0Alpha.jar" />
<propertyhelper>
<props:nested/>
</propertyhelper>

<!-- *********************************************** -->

<target name="GetReturnCode">
<loadfile property="CmdOutput" srcFile="CmdOutput.txt"/>
<echo message="CmdOutput: ${CmdOutput}" />
<propertyregex property="ResultCode"
input="${CmdOutput}"
regexp="^([\s\S]*)(\r?\n)+(\d{1,})(\r?\n)*"
select="\3"
casesensitive="false" />
<echo message="ResultCode: ${ResultCode}" />
</target>

</project>

在Jenkins服务器上建立一个TEST的Job,然后点击配置按钮:

在构建的标签处,添加一个Invoke Ant,然后分别输入要构建的Ant脚本文件,和要跑的任务Target:

点击保存按钮保存上一步做的配置,然后点击Build Now按钮开始构建Job:

构建完毕之后,把鼠标放到构建记录上面,点击下拉箭头,弹出菜单中选择“Console Output”查看控制台输出:

结果页面中,前面 CmdOutput.txt 文件中的返回代码“2”被提取并显示出来了

----------------------------------------
为什么会有这么多人问这个问题呢?

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:942
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371