regex - 使用awk获取子字符串

标签 regex linux bash shell awk

所有,我想使用 AWK 将下面的字符串拆分为第一部分。

如何编写AWK表达式?

#!/bin/bash

function parsePackageName()
{
  #....... here I want to get the String "pp-demo-mid"
  #        from "pp-demo-mid-1.0-212.noarch"
}

示例输入:

pp-demo-mid-1.0-212.noarch
pp-1.0-212.noarch
pp-xx-1.0-212.noarch

期望的输出:

pp-demo-mid
pp
pp-xx

这意味着,我需要解析版本​​号之前的第一部分。

最佳答案

有这样的事吗?它在第一个数字处分割字符串。

awk -F"-[0-9]" '{print $1}' file
pp-demo-mid
pp
pp-xx

或者您可以更具体,并在第一个 -x.x 之后进行划分,其中 x 是一个数字

awk -F"-[0-9][.][0-9]" '{print $1}' file

关于regex - 使用awk获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088135/

相关文章:

c# - 如何拆分数字字符串及其子字符串?

linux - 无法通过 Visual Studio 将调试器附加到 Azure Linux Web 服务

c - Linux终端上的Hello.c错误(C语言)

linux - Bash - 写入 visudo

arrays - 将数组从一个 Bash 脚本传递到另一个

php - 如何使用 preg_match 来测试空格?

java - 正则表达式模式表达式

javascript - 为什么可选的 0 宽度捕获组中的先行会阻止该组匹配?

c - 最后一个struct dirent中字段d_off的含义

java - 如何多次运行一个jar文件?中央操作系统