startup
要提取startup/
后面的字符,可以使用cut
命令或awk
命令。以下是两种方法:
使用cut
命令:
#!/bin/bash
# 给定的字符串
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用cut命令提取startup/后面的字符
EXTRACTED1=$(echo "$STR1" | cut -d'/' -f2-)
EXTRACTED2=$(echo "$STR2" | cut -d'/' -f2-)
# 输出结果
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
使用awk
命令:
#!/bin/bash
# 给定的字符串
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用awk命令提取startup/后面的字符
EXTRACTED1=$(echo "$STR1" | awk -F'startup/' '{print $2}')
EXTRACTED2=$(echo "$STR2" | awk -F'startup/' '{print $2}')
# 输出结果
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
解释:
cut -d'/' -f2-
:使用/
作为分隔符,并提取从第二段到最后的所有段。awk -F'startup/' '{print $2}'
:使用startup/
作为字段分隔符,并打印第二个字段。
这两种方法都可以有效地提取startup/
后面的字符。选择哪种方法取决于你的具体需求和个人喜好。
不一定要使用 echo
才能用 awk
对变量进行截取。在 Bash 脚本中,你可以直接将变量的内容传递给 awk
命令进行处理,而不需要显式地使用 echo
。这可以通过将变量作为字符串直接传递给 awk
来实现。以下是一个示例:
#!/bin/bash
# 给定的字符串
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用awk命令直接对变量内容进行处理
EXTRACTED1=$(awk -F'startup/' '{print $2}' <<< "$STR1")
EXTRACTED2=$(awk -F'startup/' '{print $2}' <<< "$STR2")
# 输出结果
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
在这个示例中,<<< "$STR1"
是一个 here-string,它将 STR1
变量的内容作为输入传递给 awk
命令。这种方法避免了使用 echo
,并且代码更加简洁。
这种方法同样适用于 STR2
变量,如示例所示。使用 here-string 是一种在命令行或脚本中传递单行输入的简洁方式。
当然,除了使用 awk
和 cut
,还有其他几种方法可以在 Shell 中提取 startup/
后面的字符。以下是一些替代方法:
使用参数扩展
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用参数扩展去除前缀
EXTRACTED1="${STR1#*/}"
EXTRACTED2="${STR2#*/}"
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
使用 sed
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用sed命令去除前缀
EXTRACTED1=$(sed 's/^startup\///' <<< "$STR1")
EXTRACTED2=$(sed 's/^startup\///' <<< "$STR2")
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
使用 grep
和正则表达式
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用grep和正则表达式提取匹配的部分
EXTRACTED1=$(grep -oP '(?<=startup/).+' <<< "$STR1")
EXTRACTED2=$(grep -oP '(?<=startup/).+' <<< "$STR2")
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
使用 bash
内置的正则表达式匹配
STR1="startup/values.conf.template"
STR2="startup/v3.2.0-guangyi/values.conf.template"
# 使用bash内置的正则表达式匹配
if [[ $STR1 =~ ^startup/(.+)$ ]]; then
EXTRACTED1="${BASH_REMATCH[1]}"
fi
if [[ $STR2 =~ ^startup/(.+)$ ]]; then
EXTRACTED2="${BASH_REMATCH[1]}"
fi
echo "提取的字符1: $EXTRACTED1"
echo "提取的字符2: $EXTRACTED2"
这些方法提供了不同的方式来处理字符串并提取所需的部分。你可以根据你的具体需求和个人喜好选择最适合的方法。
startup的更多相关文章
- 学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter
中间件的注册除了可以借助Startup对象(DelegateStartup或者ConventionBasedStartup)来完成之外,也可以利用另一个叫做StartupFilter的对象来实现.所谓 ...
- 学习ASP.NET Core, 怎能不了解请求处理管道[4]: 应用的入口——Startup
一个ASP.NET Core应用被启动之后就具有了针对请求的处理能力,而这个能力是由管道赋予的,所以应用的启动同时意味着管道的成功构建.由于管道是由注册的服务器和若干中间件构成的,所以应用启动过程中一 ...
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...
- Tips for Planning Your Business Startup
原文链接:http://domaintree.me/?p=1037 By Robert Thibodeau – Starting a business can be a very daunting ...
- Asp.Net MVC<九>:OWIN,关于StartUp.cs
https://msdn.microsoft.com/zh-cn/magazine/dn451439.aspx(Katana 项目入门) 一不小心写了个WEB服务器 快刀斩乱麻之 Katana OWI ...
- Startup配置类 居然又是约定
Microsoft.Owin.Host.SystemWeb 这个dll可以让OWin接管IIS的请求,虽然同样是托管在IIS,但是所有的请求都会被OWin来处理.在OWin的4层结构中(Applica ...
- java.lang.ClassNotFoundException: org.apache.catalina.startup.VersionLoggerListener
解决办法 找到Tomcat配置文件server.xml apache-tomcat-7.0.57/conf 将<Listener className="org.apache.cat ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- warnin php startup in unknown on line 0:
PHP Warning: PHP Startup: in Unknown on line 0 这种情况是因为扩展路径有问题导致的路径或错,或没有该扩展但ini中开启了此扩展
- schematool -dbType mysql -initSchema hive startup failed...try this
schematool -dbType mysql -initSchema hive startup failed
随机推荐
- vue 中 slot 的使用方式,以及作用域插槽的用法
分类:插槽又分为匿名插槽.具名插槽以及作用域插槽 : 匿名插槽,我们又可以叫它单个插槽或者默认插槽 因为组件标签中间是不允许写内容的,但是可以插入 插槽 :template 标签 : 插槽的使用方法 ...
- 24. echarts 可以画哪些图表
1. 折线图 2. 柱状图 3. 饼图 4. 地图 5. 雷达图 延申问题:画折线图和柱状图哪些配置可以改变样式 1. color 设置每个数据的颜色 2. grid 网格设置图表的大小 3. s ...
- Ex-BSGS
给定\(a,p,b\),求\(a^x\equiv b \pmod p\)的最小自然数\(x\) . 保证\(\sum \sqrt p \leq5\times 10^6\) 当\(a=p=b=0\)时, ...
- ASP.NET实现网站发布及跨域访问
1.软件下载及安装 visual studio 2012 or 2013 启用电脑IIS配置 2.网页编写及排版 在visual studio中创建web项目添加aspx页面(个人网页:和html差不 ...
- 中通快递关键业务和复杂架构挑战下的 Kubernetes 集群服务暴露实践
本文是上海站 Meetup 讲师王文虎根据其分享内容整理的文章. KubeSphere 社区的小伙伴们,大家好.我是中通快递容器云平台的研发工程师王文虎,主要负责中通快递容器云平台开发.应用容器化推广 ...
- nodejs redis 小试牛刀
一.环境安装 书接上文,浅学Redis之后,服务器已经安装Redis了,用 nodejs 链接 redis 之前,先安装 nodejs 环境. 1.安装fnm (1)压缩包fnm-linux.zip搞 ...
- 微信H5分享外部链接,缩略图不显示
可关注微信公众号酒酒酒酒查看原文: 前言:最近做了一款推广茶的APP软件,展厅.产品需要分享功能:从APP内分享到H5网页:微信内打开H5网页,点击微信内右上角三个点,可再次分享: 注意:大多数情况下 ...
- 全面解释人工智能LLM模型的真实工作原理(二)
前一篇:<全面解释人工智能LLM模型的真实工作原理(一)> 序言:在上一篇文章中,我们从原理上构建了一个识别"叶子"和"花朵"的神经网络,并详细讲解 ...
- python处理大量数据excel表格中间格式神器pickle.pkl文件操作说明
读取写入千万级别的excel文件费时费力,调试起来比较慢,面对这个问题,第一步可以先无脑全部转换成pkl文件,这样几乎和内存操作一样的速度. 例如: t=pd.read_excel("12月 ...
- ClearCLIP:倒反天罡,删除两个组件反而可以提升密集预测性能 | ECCV'24
来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: ClearCLIP: Decomposing CLIP Representations for Dense Vision-Language I ...