提取的名字我怎麼能提取的軟件基本名稱,其中的形式是這樣的: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'可以輕鬆完成此操作。 –