【发布时间】:2014-07-10 17:33:49
【问题描述】:
以下是文件的内容:
xxx_component1-1.0-2-2acd314.xc-linux-x86-64-Release-devel.r
xxx_component2-3.0-1-fg3sdhd.xc-linux-x86-64-Release-devel.r
xxx_component3-1.0-2-3gsjcgd.xc-linux-x86-64-Release-devel.r
xxx_component4-0.0-2-2acd314.xc-linux-x86-64-Release-devel.r
我想提取组件名称component1 component2等
这是我尝试过的:
for line in `sed -n -e '/^xxx-/p' $file`
do
comp=`echo $line | sed -e '/xxx-/,/[0-9]/p'`
echo "comp - $comp"
done
我也试过sed -e 's/.*xxx-\(.*\)[^0-9].*/\1/'
这是基于网上的一些信息。请给我sed命令,如果可能的话也逐步解释
第 2 部分。我还需要从字符串中提取版本号。 版本号以 digit 开头,以 . 结尾。其次是xc-linux。 如您所见,为了保持唯一性,它具有随机字母数字字符(长度为 7)作为版本号的一部分。
例如: xxx_component1-1.0-2-2acd314.xc-linux-x86-64-Release-devel.r 在此字符串中,版本号为:1.0-2-2acd314
【问题讨论】: