2013-11-25 212 views
0

提取的名字我怎麼能提取的軟件基本名稱,其中的形式是這樣的:Linux命令行從文本

軟件-1.2.3-vd.ext 或 軟件-1.2.3-vd.ext

我需要提取軟件或軟件,版本前的所有內容。 我看看正則表達式,但不知道如何去做。 謝謝。

+0

谷歌grep的例子 - 這應該幫助! – Ken

+0

讓您從只打印名稱獲得軟件名稱的實用程序。例如,'rpm'可以輕鬆完成此操作。 –

回答

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 
+0

工作很好,謝謝,現在我可以確切地檢查它的含義。 – user3033629

+0

不客氣。它刪除了第一個'-'後跟一個數字,並且後面的每個字符 – hek2mgl

1

純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

+1不會產生額外的過程 – hek2mgl

0

用命令basename(這是專門意味着這個目的)