Centos
腳本表達式來獲取字元串的一部分?
我在 CentOS 中使用 bash shell,版本…
$ uname -a Linux mydomain.com 3.2.29-48.63.amzn1.x86_64 #1 SMP Sat Sep 15 01:43:12 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
在我的 shell 腳本中,我想獲取字元串的一部分,特別是最後一個破折號(“-”)之前的所有內容。所以如果我的字元串是“my-importer-1.0.ear”,我想提取“my-importer”。但是,下面的表達式
prefix=${fname%-*}
只返回“我的”,因為它與第一個破折號匹配。如何調整表達式以匹配所有內容,直到最後一個破折號?
你確定你沒有使用
%%
which 從字元串末尾刪除最長的匹配,從而給你my
,而 a%
刪除最短的匹配並提供(例如)你想要的fname=my-importer-1.0.ear echo ${fname%%-*} my
然而
echo ${fname%-*} my-importer