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
随机推荐
- js 时间日期
Date.parse() 把字符串时间转化为时间戳. new Date(时间戳) 转化 时间格式 时间比较大小
- Web渗透09_文件包含漏洞
1 文件包含漏洞描述 开发人员编写代码时独立性好是一个很重要的要求,这边一个数据库类,那边一个模型类.几百行的整体代码,在整合时两行行代码就可以包含进来使用.文件包含有助于独立的代码之间的配合!有时引 ...
- AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图
一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对. 二:理解 ...
- Spring SPI、Solon SPI 有点儿像(Maven 与 Gradle)
一.什么是 SPI SPI 全名 Service Provider interface,翻译过来就是"服务提供接口".基本效果是,申明一个接口,然后通过配置获取它的实现,进而实现动 ...
- 封装socket 到vue2.x 使用
vue2.x 使用 socket 数据交互 简单封装 socket //生成唯一标识符 function getUuid { let s = []; let hexDigits = "012 ...
- .Net Core NPOI 导出多级表头
想要导出这样的表格 数据准备格式 附上源码 1 using NPOI.HSSF.UserModel; 2 using NPOI.SS.UserModel; 3 using NPOI.SS.Util ...
- Maven简单介绍——必要的Java管理与构建
概念 通常Java的项目中有很多的环境和规范的问题,比如一些需要依赖的包,整个项目的目录标准是怎么样的,什么样的文件放在哪个目录等,还有jdk版本,编译代码流程,项目版本号之类的问题. 虽然这些都是小 ...
- STM32F103RCT6搭配“ST_LINK V2 √RoHS 'A 2023 04'”在CubeIDE中下载程序到单片机
一.请参考本站大佬文章进行接线: ST_LINK V2接口和连接方式 二.步骤: 到此,大功告成. 小手点赞,水逆退散!!!
- python库asyncio的概念和用法
python 库 asyncio asyncio 是 Python 的标准库之一,用于编写异步应用程序.它提供了事件循环.协程.任务和其他工具来处理并发操作.以下是一些关于 asyncio 的基本概念 ...
- app&小程序&web安全—sign签名绕过
零.前言 在web界面登陆时,小程序和app传输数据时经常会碰到签名,会对请求的参数进行签名,如果自己修改了数据包就会校验失败非常麻烦. 本文编写的契机就是因为碰到了一个JeecgBoot的小程序, ...