提取的名字我怎么能提取的软件基本名称,其中的形式是这样的:Linux命令行从文本
软件-1.2.3-vd.ext 或 软件-1.2.3-vd.ext
我需要提取软件或软件,版本前的所有内容。 我看看正则表达式,但不知道如何去做。 谢谢。
提取的名字我怎么能提取的软件基本名称,其中的形式是这样的:Linux命令行从文本
软件-1.2.3-vd.ext 或 软件-1.2.3-vd.ext
我需要提取软件或软件,版本前的所有内容。 我看看正则表达式,但不知道如何去做。 谢谢。
随着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
工作很好,谢谢,现在我可以确切地检查它的含义。 – user3033629
不客气。它删除了第一个'-'后跟一个数字,并且后面的每个字符 – hek2mgl
纯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
+1不会产生额外的过程 – hek2mgl
用命令basename
(这是专门意味着这个目的)
谷歌grep的例子 - 这应该帮助! – Ken
让您从只打印名称获得软件名称的实用程序。例如,'rpm'可以轻松完成此操作。 –