Linux命令行从文本中提取名称

时间:2013-11-25 19:02:31

标签: regex linux bash shell

如何在表格如下的地方提取软件的基本名称:

软件-1,2,3- vd.ext 要么 软洁具-1,2,3- vd.ext

我需要在版本之前提取软件或软件。 我看了正则表达式,但不知道该怎么做。 谢谢。

3 个答案:

答案 0 :(得分:3)

使用sed

echo 'software-1.2.3-vd.ext'  | sed 's/\-[0-9].*//'  # software
echo 'soft-ware-1.2.3-vd.ext' | sed 's/\-[0-9].*//'  # soft-ware

答案 1 :(得分:1)

Pure BASH解决方案:

s="software-1.2.3-vd.ext"
echo "${s%%-[0-9]*}"
software

s="soft-ware-1.2.3-vd.ext"
echo "${s%%-[0-9]*}"
soft-ware

答案 2 :(得分:0)

使用命令basename(专门用于此目的)