加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 正则表达式在bash中冒号后提取字符串

发布时间:2020-12-14 06:03:00 所属栏目:百科 来源:网络整理
导读:我需要在以下示例中提取字符串:在下面的示例中: 包:project.abc.def 因此我会得到project.abc.def. 我在bash中尝试这个,我相信我有一个正常的表达式可以工作:([^:] *)$. 在我的bash脚本中,我有一个包:project.abc.def作为一个名为apk的变量.现在我如何
我需要在以下示例中提取字符串:在下面的示例中:

包:project.abc.def

因此我会得到project.abc.def.

我在bash中尝试这个,我相信我有一个正常的表达式可以工作:([^:] *)$.

在我的bash脚本中,我有一个包:project.abc.def作为一个名为apk的变量.现在我如何为正则表达式找到的子字符串分配相同的变量?

来自package:project.abc.def的结果将在apk变量中.和package:project.abc.def最初是在apk变量中?

谢谢!

解决方法

这里不需要正则表达式,只需简单的前缀替换:

$apk="package:project.abc.def"
$apk=${apk##package:}
project.abc.def

##语法是bash参数扩展之一.而不是#,%可用于修剪结束.有关详细信息,请参见bash手册页的this section.

一些替代品:

$apk=$(echo $apk | awk -F'package:' '{print $2}')
$apk=$(echo $apk | sed 's/^package://')
$apk=$(echo $apk | cut -d':' -f2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读