2

所有,我想使用 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

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

4

2 回答 2

3

像这样的东西?它在第一个数字处划分字符串。

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

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

awk -F"-[0-9][.][0-9]" '{print $1}' file
于 2013-09-30T07:20:41.963 回答
2

这是尝试使用sed

sed -r 's/([^0-9]+)-.*/\1/'

([^0-9]+)将捕获所有非数字字符\1

于 2013-09-30T07:23:04.280 回答